Renomeia todos os arquivos

2

Como eu renomeio todos os arquivos no diretório atual com uma extensão de .tgz para .tar.gz? Eu tentei

find . -iname *.tgz --exec mv {} {}.tar.gz \;

mas não funciona como esperado.

    
por Sangfroid 21.10.2011 / 05:04

6 respostas

3

Um útil é rename .tgz .tar.gz *.tgz

link

    
por 21.10.2011 / 06:08
1
ls *.tgz | sed 's/\(.*\).tgz$/mv "&" ".tar.gz"/' | sh
    
por 21.10.2011 / 05:10
1
for i in *.tgz; do mv "$i" "${i/.tgz}".tar.gz; done
    
por 21.10.2011 / 05:52
1

rename é legal. Mas você deve tomar cuidado com os derivados do Debian - eles não fornecem a mesma versão que outras distribuições.

Debian / Ubuntu / amigos:

# rename 's/\.tgz$/\.tar.gz/ *.tgz

Todo mundo, até onde eu sei - link

# rename .tgz .tar.gz *.tgz
    
por 21.10.2011 / 06:30
0

Você pode precisar fazer algo assim:

[rilindo@kvm0001 bar]$ ls -la
total 8
drwxr-xr-x. 2 rilindo cgred 4096 Oct 20 23:16 .
drwxr-xr-x. 8 rilindo cgred 4096 Oct 20 23:10 ..
-rw-r--r--. 1 rilindo cgred    0 Oct 20 23:15 bar.txt
-rw-r--r--. 1 rilindo cgred    0 Oct 20 23:15 baz.txt
-rw-r--r--. 1 rilindo cgred    0 Oct 20 23:16 foo.txt
[rilindo@kvm0001 bar]$ for i in 'find . -type f -iname "*.txt"'; do j='echo $i | sed 's/.txt$/.doc/''; mv $i $j; done
[rilindo@kvm0001 bar]$ ls -la
total 8
drwxr-xr-x. 2 rilindo cgred 4096 Oct 20 23:16 .
drwxr-xr-x. 8 rilindo cgred 4096 Oct 20 23:10 ..
-rw-r--r--. 1 rilindo cgred    0 Oct 20 23:15 bar.doc
-rw-r--r--. 1 rilindo cgred    0 Oct 20 23:15 baz.doc
-rw-r--r--. 1 rilindo cgred    0 Oct 20 23:16 foo.doc
[rilindo@kvm0001 bar]$ 

Então, com esta string de comando:

for i in 'find . -type f -iname "*.txt"'; do j='echo $i | sed 's/.txt$/.doc/''; mv $i $j; done

Eu recebo a lista de arquivos e para cada elemento, atribuo o nome do arquivo com uma nova extensão para uma variável e renomeio cada arquivo para essa variável.

Este, é claro, provavelmente não é um roteiro perfeito, mas eu acho que você entendeu a idéia.

    
por 21.10.2011 / 05:18
0

Eu recomendo 'mmv'. Muito simples e menos propensa a erros do que 'for' expressões.

    
por 22.10.2011 / 00:31

Tags