Bonjour ,
J'aimerai faire la condition suivante
SI le nombre de fichiers de la commande ls /A/* est supérieur a 1
Merci d'avance ,
Cordialement.
Version imprimable
Bonjour ,
J'aimerai faire la condition suivante
SI le nombre de fichiers de la commande ls /A/* est supérieur a 1
Merci d'avance ,
Cordialement.
si c'est pour au moins 1 :
Code:[ -f /A/* ] && action || sinon
Code:
1
2
3
4
5
6
7
8
9
10
11
12 [fp@ln ~] cd tmp [fp@ln ~/tmp] mkdir A [fp@ln ~/tmp] touch A/toto [fp@ln ~/tmp] [ -f A/* ] && echo OK || echo KO OK [fp@ln ~/tmp] rm -rf A [fp@ln ~/tmp] [ -f A/* ] && echo OK || echo KO KO [fp@ln ~/tmp] [fp@ln ~/tmp] echo $SHELL /bin/bash [fp@ln ~/tmp]
J'avais test et j'obtiens :
Merci pour ta réponseCode:
1
2
3
4
5
6
7 if [ -f ./* ] then echo "TEST" fi ----> bash: [: too many arguments
si tu veux faire avec la syntaxe complêteCode:
1
2
3
4
5 if test -f A then echo "TEST" fi
J'ai la meme erreur :/
Code:bash: test: too many arguments
il faut absolument utiliser un objet nommé... tu peux pas le faire comme ça sur *
ou alors tu changes de méthode
tu fais
ce qui fait rien si rien n'est trouvé.Code:find /repertoire -type f -exec traitement {} \;
ne pas oublier d'interrompre à la première itération sinon c'est un traitement par fichier trouvé !
Pour un mv ce sera :
Code:find /repertoire -type f -exec mv {} /archive/;
Bonjour,
attention, ta commande find pour faire le mv n'est pas terminée correctement,
c'est ceci qu'il faudrait plutôt faire:c'est un '\;' à la fin et non un '/;'Code:find /repertoire -type f -exec mv '{}' /archive/ \;
Cordialement,