Eu tenho algumas pastas como [email protected], [email protected], [email protected]. eu quero renomeá-los para que seja name1, name2, name3 etc. Eu descobri que se eles são vice-versa, ou seja, name1, name2, name3 eu posso movê-lo para [email protected] executando
find . -type d -name "*" -depth 1 | while read d; do mv "$d" "[email protected]"; done
Mas como faço o inverso? nome1@domínio.com ==> nome1
Com um shell como o Bash:
for d in ./*@*/
faz um loop em todos os diretórios no diretório atual cujos nomes contêm “@”.${d%@*}
é uma expansão de parâmetro, dando o valor dad
variável menos o último “@” e o que se segue.Você pode tornar isso mais restritivo, por exemplo ,