Bonjour,
Je souhaiterais connaîre une commande qui me permette de récupérer la taille d'un répertoire et une commande de test permettant de tester si cette valeur vaut 0 ou non.
Est ce quelqu'un aurait quelques éléments de réponses?
merci
Version imprimable
Bonjour,
Je souhaiterais connaîre une commande qui me permette de récupérer la taille d'un répertoire et une commande de test permettant de tester si cette valeur vaut 0 ou non.
Est ce quelqu'un aurait quelques éléments de réponses?
merci
bonjour,
developpez.net ne fourni pas encore de boule de cristal. est-ce que tu pourrais nous en dire un peu plus ? quel est le langage utilisé ? c'est une commande bash que tu cherches ? si oui : man du et pour la condition paragraphe "Exécution conditionnelle"
on ne peut pas t'aider correctement si tu ne poses pas de question détaillée ;)
je cherche cette commande pour l'ajouter à un script unix en bash oui
je peux peut etre trouver la fonction dans le lien que tu as mis dans ton message.
Merci
Citation:
Envoyé par fillotte
Sur un rep vide ca me donne 4k par défautCode:du -hs test 2>/dev/null
ça marche pas tout à fait comme ça. créé un répertoire test et fais untu es d'accord que le répertoire est non vide. et ça va t'afficher 4,0K quand même ;)Code:touch test/test.txt
sinon, il y a un moyen détournébon c'est moche mais ça marche :)Code:
1
2
3
4
5 if [ $(ls mon_rep/|wc|tr -d ' ') = "017" ]; then echo "Vide !"; else echo "pas vide !"; fi
en gros, je fais un ls dans le répertoire à tester. ensuite, je compte les occurrences avec wc. il y a plein d'espaces alors je les enlève avec tr. la chaine de sortie est toujours 017 quand le répertoire est vide donc si la sortie n'est pas 017 alors c'est que le dossier n'est pas vide.
et ça marche même si il y a un fichier vide à l'intérieur du dossier ;)
Petite question, si tu fais un ls -l et que tu compte les lignes après, sa va pas? sa t'evite de translater pour supprimer les espaces :roll:
Code:
1
2
3
4
5 if [ $(ls -l mon_rep/|wc -l) = "017" ]; then echo "Vide !"; else echo "pas vide !"; fi
c'est juste ce que tu dis mais j'apporte une correction à ton script. wc -l compte le nombre de lignes donc ça renvoie 0 et non 017 si c'est vide ;)
ou sinon, on peut faire ceci si on veut utiliser ls -aCode:
1
2
3
4
5 if [ $(ls mon_rep/|wc -l) = 0 ]; then echo "Vide !"; else echo "pas vide !"; fi
Code:
1
2
3
4
5 if [ $(ls -a mon_rep/|wc -l) = 2 ]; then echo "Vide !"; else echo "pas vide !"; fi
Exact pour le nombre de lignes, j'avais oublié de modifié :oops:
voire -ACitation:
Envoyé par Michaël
Code:
1
2
3
4
5
6
7
8 ls -A dir | grep . >/dev/null if [ $? -eq 0 ] then echo non-vide else echo vide fi
Avec find ca ne serait pas plus simple ;) :
Code:
1
2 if [ "x`find <DIR>`" == "x<DIR>" ] ; then echo "empty" ; fi
Et :
?Code:
1
2 if [ "`echo DIR/*`" == 'DIR/*' ] ; then echo "empty" ; fi
--
Jedaï