Ls, dossiers et erreurs...

Résolu/Fermé
sym59 Messages postés 40 Date d'inscription jeudi 10 mai 2012 Statut Membre Dernière intervention 11 août 2015 - 24 sept. 2013 à 17:27
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 24 sept. 2013 à 18:01
Bonjour,

J'ai dans mon bash une commande :
ls -d */ >resume.txt
. Seulement, si le répertoire en cours est vide, la commande me renvoie un message d'erreur "ls: File or directory "*/" is not found" ; quelqu'un saurait comment y remédier?

J'ai déjà essayé de poser des conditions comme
if [ -n "$(ls -d */)" ]; then
,
if [ -e "$(ls -d */)" ]; then
, ou encore par l'intermédiaire d'une variable
temp=$(ls -d */)
if [ -e "$temp" ]; then
mais pas moyen d'y arriver, toujours le même message d'erreur

Merci de votre aide!

2 réponses

sym59 Messages postés 40 Date d'inscription jeudi 10 mai 2012 Statut Membre Dernière intervention 11 août 2015
24 sept. 2013 à 17:56
J'ai trouvé!

temp=$(ls -d */) 2>/dev/null   
# 2>/dev/null pour ne pas afficher de message d'erreur
if [ $? -ge 1 ]; then
# $? supérieur à 0 en cas d'erreur
echo "dossier vide!"
else
ls -d */ > Resume.txt
fi
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
24 sept. 2013 à 18:01
Salut,

$ ls -d */ 2>/dev/null && echo "OK" || echo "Vide"
Vide


0