Pour aller plus loin, d'autres discussions similaires sont disponibles :
Répondre à ce message
Répondre au sujet initial
Poser une question dans la section
Poser une question dans une autre sectionRéponse postée le 14/04/2006 à 15h56
Bonjour
un script verifie la presence au minimum d'un fichier dans
un repertoire pour action.
Le script fourni contient:
if [ -f import/* ]
then
action
else
autre action
fi
Or, cela ne marche pas si le premier resultat renvoye par
l'expansion de * est un repertoire.
Je ne dois pas verifier l'existence de fichier dans des
sous-repertoires.
Je pensais verifier par un find du genre:
find import/ -type f -depth 1
mais je bute sur
-depth qui n'a pas l'effet esompte
[...]
-et la maniere d'encapsuler le find dans un test
[...]
Répondre à ce message
Répondre au sujet initial
Poser une question dans la section
Poser une question dans une autre sectionRéponse postée le 14/04/2006 à 16h04
Le script fourni contient:
if [ -f import/* ]
then
action
else
autre action
fi
Or, cela ne marche pas si le premier resultat renvoye par
l'expansion de * est un repertoire.
Répondre à ce message
Répondre au sujet initial
Poser une question dans la section
Poser une question dans une autre sectionRéponse postée le 14/04/2006 à 16h04
Le script fourni contient:
if [ -f import/* ]
then
action
else
autre action
fi
Or, cela ne marche pas si le premier resultat renvoye par
l'expansion de * est un repertoire.
Répondre à ce message
Répondre au sujet initial
Poser une question dans la section
Poser une question dans une autre sectionRéponse postée le 14/04/2006 à 21h55
has_file() { # args: <dir>
for f in "$dir"/* "$dir"/.*; do
[ -f "$f" ] && return 0
done
return 1
}
if has_file import; then
echo import has file'(s)'
fi
Ou
if find import/. \! -name . -prune -type f -print |
grep -q .; then
echo import had 'file(s)'
fi
Note que "[ -f" trouve les fichiers reguliers et les liens
symboliques vers les fichiers reguliers, "-type f" trouve les
fichiers reguliers uniquement. Tu peux avoir des resultats
inattendus si "[" ou "find" ne sont pas capable d'identifier le
type d'un fichier (par exemple pour des histoires de
permissions).
Pour répondre ou poser vos questions, vous devez vous inscrire sur le site.
Vous aurez alors également accès à des fonctionnalités supplémentaires. S'inscrire...