Je regarde à travers de nombreux sous-répertoires et trouve tous les fichiers se terminant par .JPG .jpg et .png et en les copiant dans un répertoire séparé, mais juste maintenant sa seule conclusion .JPG
Quelqu’un pourrait-il expliquer ce que je fais mal?
find /root/TEST/Images -name '*.png' -o -name '*.jpg' -o -name '*.JPG' -exec cp -t /root/TEST/CopiedImages {} +
Vous devez regrouper les conditions -o
car -a
, le ET implicite entre le dernier nom -name '*.JPG'
et -exec
a une priorité plus élevée :
find /root/TEST/Images \( -name '*.png' -o -name '*.jpg' -o -name '*.JPG' \) -exec cp -t /root/TEST/CopiedImages {} +
Le regroupement se fait entre parenthèses, mais il faut les échapper (ou les citer) car leur signification particulière est shell.
Sans rapport avec cela, vous pouvez raccourcir l’expression globale en combinant des filtres pour jpg
et JPG
avec le -iname
insensible à la -iname
(comme indiqué dans les commentaires):
find /root/TEST/Images \( -name '*.png' -o -iname '*.jpg' \) -exec cp -t /root/TEST/CopiedImages {} +