Em zsh, coloque autoload zmv
no seu .zshrc
( ou execute esse em sua linha de comando para experimentar com ele), então:
mkdir /home/user1/newfolder
zmv '/home/user/(*)/(*)/(cover.jpg)' '/home/user1/newfolder/${1}_${2}_${3}'
Cada arquivo que corresponde ao padrão no lado esquerdo é renomeado para o texto de substituição no lado direito. *
significa “qualquer sequência de caracteres”. No lado direito, ${1}
, ${2}
e ${3}
são substituídos, respectivamente, pela porção do caminho de origem correspondida pelo primeiro, segundo e terceiro grupos de parênteses no padrão.
Em vez de usar o agrupamento explícito, você pode solicitar que cada caractere curinga seja criado automaticamente:
zmv -w '/home/user/*/*/cover.jpg' '/home/user1/newfolder/${1}_${2}_cover.jpg'
Ou até mesmo:
zmv -W '/home/user/*/*/cover.jpg' '/home/user1/newfolder/*_*_cover.jpg'
Alguns até chegam a adicionar:
alias zmmv='noglob zmv -W'
para lá ~/.zshrc
para poder escrever:
zmmv /home/user/*/*/cover.jpg /home/user1/newfolder/*_*_cover.jpg