[shell/script] Verif contenu d'un dossier
Pupuceagain
Messages postés
2
Statut
Membre
-
Pupuceagain Messages postés 2 Statut Membre -
Pupuceagain Messages postés 2 Statut Membre -
Bonjour,
Je ne sais pas combien de page de sujet comporte ce forum, mais je n'ai pas trouvé ce que je cherche dans les 15 premières...(mais j'avoue ne pas avoir ouvert chaque sujet aussi! :D)
Voila je voudrais fair eun script qui vérifie si le dossier contient des fichiers et si oui lui faire faire une action.
Prenons le dossier /home/user/Bureau/dossier/
dedans, j'ai : Lecture/ et ecriture/ ainsi que le fichier contenant le script que je veux faire ( Dossier_vide par exemple)
Dans le dossier ecriture/ j'ai plusieurs petit fichier pour tester: task1, task2, task3 et task4
Après qq recherches, j'ai tenté ceci(vous allez vite comprendre que je debute :D):
#!/bin/bash
pwd
cd /home/user/Bureau/dossier/ecriture #3 lignes pour etre sur d'etre au bon endroit
pwd #à virer plus tard
if [ -f *] #-f car je veux savoir s'il y a des fichiers dedans et * car peu importe le nom
then echo "il y a qqchose"
echo *1 #ces 2 lignes servaient a voir si j'utilisais bien *
echo task*
else
echo "il n'y a rien"
fi
exit 0
Ce script me donne toujours: il n'y a rien
Si je remplace par if [ -f task1 ] , ca fonctionne, il me donne:
il y a qqchose
task1
task1 task2 task3 task4
if [ -f task* ] ne fonctionne pas non plus
Voila je pense avoir tout dis... pour le moment... :D
Le but final etant de copier le dossier ecriture/ ailleurs s'il comporte des fichiers ou de ne rien faire s'il est vide
Merci d'avance pour votre aide
Je ne sais pas combien de page de sujet comporte ce forum, mais je n'ai pas trouvé ce que je cherche dans les 15 premières...(mais j'avoue ne pas avoir ouvert chaque sujet aussi! :D)
Voila je voudrais fair eun script qui vérifie si le dossier contient des fichiers et si oui lui faire faire une action.
Prenons le dossier /home/user/Bureau/dossier/
dedans, j'ai : Lecture/ et ecriture/ ainsi que le fichier contenant le script que je veux faire ( Dossier_vide par exemple)
Dans le dossier ecriture/ j'ai plusieurs petit fichier pour tester: task1, task2, task3 et task4
Après qq recherches, j'ai tenté ceci(vous allez vite comprendre que je debute :D):
#!/bin/bash
pwd
cd /home/user/Bureau/dossier/ecriture #3 lignes pour etre sur d'etre au bon endroit
pwd #à virer plus tard
if [ -f *] #-f car je veux savoir s'il y a des fichiers dedans et * car peu importe le nom
then echo "il y a qqchose"
echo *1 #ces 2 lignes servaient a voir si j'utilisais bien *
echo task*
else
echo "il n'y a rien"
fi
exit 0
Ce script me donne toujours: il n'y a rien
Si je remplace par if [ -f task1 ] , ca fonctionne, il me donne:
il y a qqchose
task1
task1 task2 task3 task4
if [ -f task* ] ne fonctionne pas non plus
Voila je pense avoir tout dis... pour le moment... :D
Le but final etant de copier le dossier ecriture/ ailleurs s'il comporte des fichiers ou de ne rien faire s'il est vide
Merci d'avance pour votre aide
A voir également:
- [shell/script] Verif contenu d'un dossier
- Dossier appdata - Guide
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
3 réponses
Salut,
Une idée comme une autre...
Tester le code retour de la commande "ls" dans le répertoire.
Une idée comme une autre...
Tester le code retour de la commande "ls" dans le répertoire.
$ ls * foo.sh* rep: toto rep1: $ cat foo.sh #! /bin/bash for i in rep rep1 do test $(ls $i) if [ "$?" -eq "0" ] then echo "Le répertoire $i contient des fichiers" else echo "Le répertoire $i est vide" fi done $ ./foo.sh Le répertoire rep contient des fichiers Le répertoire rep1 est vide $
salut,
ça ne peut pas fonctionner comme ça.
l'astérisque n'est pas développé entre crochets simples, c'est comme demander si le fichier * existe.
utilise un tableau, s'il est renseigné alors le dossier n'est pas vide
ça ne peut pas fonctionner comme ça.
l'astérisque n'est pas développé entre crochets simples, c'est comme demander si le fichier * existe.
utilise un tableau, s'il est renseigné alors le dossier n'est pas vide
shopt -s nullglob
contenuRepertoire=( ./repertoire/*)
if [ -n "${contenuRepertoire[0]}" ]
then
echo "pas vide"
else
echo vide
fi