Eu tenho algumas pastas como name1@domain.com, name2@domain.com, name3@domain.com. 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 name1@domain.com executando
find . -type d -name "*" -depth 1 | while read d; do mv "$d" "$d@domain.com"; 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 ,