find -type f -name '*.bbd' | while read f; do mv "$f" "${f%.bbd}"; done
O de baixo funciona melhor nos casos de newlinefind -type f -name '*.txt' -print0 | while read -d $'\0' f; do mv "$f" "${f%.txt}"; done
Fonte: http://stackoverflow.com/questions/4509485/linux-remove-file-extensions-for-multiple-files
Quando o sinal de % for usado no padrão ${variavel%substring}, ele ira retornar o conteúdo da variavel deletando a substring.
-print0 separa o nome do arquivo com um 0 (NULL) para que possa ser interpretado de forma correta os nomes com espaços ou nova linha.
xargs lê espaços e novas linhas, mas separa as strings e executa algum comando para cada uma das strings. Se colocar xargs -0 ele vai funcionar igual ao print0 ~~ ??
Quando o sinal de % for usado no padrão ${variavel%substring}, ele ira retornar o conteúdo da variavel deletando a substring.
-print0 separa o nome do arquivo com um 0 (NULL) para que possa ser interpretado de forma correta os nomes com espaços ou nova linha.
xargs lê espaços e novas linhas, mas separa as strings e executa algum comando para cada uma das strings. Se colocar xargs -0 ele vai funcionar igual ao print0 ~~ ??
Nenhum comentário:
Postar um comentário