Uma das maneiras pelas quais renomeio rapidamente os arquivos no Windows é
F2 > Rename > Tab (to next file) > Rename ...
Mas no Ubuntu / Nautilus, não consigo tabular para o próximo arquivo. Mas estando no Linux, acho que deve haver uma alternativa de linha de comando.
No entanto, às vezes, talvez eu queira ter mais controle sobre como renomear arquivos específicos. Nesse caso, talvez seja melhor poder tabular para o próximo arquivo
command-line
rename
Jiew Meng
fonte
fonte
Respostas:
Eu uso
rename
o tempo todo. É bem simples, mas espero que você saiba o regex básico:Isto irá substituir a cadeia
SEARCH
comREPLACE
em cada arquivo (ou seja,*
). O/g
meio global, então, se você tivesse umSEARCH_SEARCH.jpg
, ele seria renomeadoREPLACE_REPLACE.jpg
. Se você não tivesse/g
, teria feito a substituição apenas uma vez e, portanto, agora nomeadoREPLACE_SEARCH.jpg
. Se você quiser fazer distinção entre maiúsculas e minúsculas, adicione/i
(isso seria/gi
ou/ig
no final).Com expressões regulares, você pode fazer muito mais.
Observe que este
rename
é o comandoprename
(também conhecido como Perlrename
), que suporta expressões regulares completas do Perl. Há outrorename
que usa padrões e não é tão poderoso.prename
costumava ser instalado por padrão no Ubuntu (junto com o Perl), mas agora você pode ter que fazer:Aqui estão alguns exemplos:
Prefixo
Adicionar :
document.pdf
renomeado paraMyPrefix_document.pdf
Remover :
Além disso, você pode remover seqüências indesejadas. Digamos que você tenha 20 arquivos MP3 com o nome like
CD RIP 01 Song.mp3
e que queira remover a parte "CD RIP", e que deseja removê-los de todos eles com um único comando.CD RIP 01 Song.mp3
para01 Song.mp3
Observe o espaço extra
'^CD RIP '
, sem o espaço em que todos os arquivos teriam um espaço como o primeiro caractere do arquivo. Observe também que isso funcionará sem o^
caractere, mas corresponderáCD RIP
em qualquer parte do nome do arquivo. As^
garantias de que apenas os caracteres serão removidos se forem o início do arquivo.Sufixo
Adicionar :
document.pdf
renomeado paradocument.pdf_MySuffix
Alterar :
vai mudar
Something.pdf
paraSomething.doc
. (A razão para a barra invertida é,.
é um caractere curinga no regexp tão.pdf
partidasqPDF
enquanto\.pdf
única corresponde a seqüência exata.pdf
. Também é muito importante notar, se você não estiver familiarizado com o bash, você deve colocar barras invertidas entre aspas simples! Você não pode omitir citações ou use aspas duplas, ou o bash tentará convertê-las. Para bash\.
e"\."
iguais.
. (Mas aspas duplas e barras invertidas são usadas, por exemplo "\ n" para uma nova linha, mas como"\."
não é uma sequência de escape posterior válida, ela traduz em.
)Na verdade, você pode até colocar as partes da string entre aspas, em vez do todo:
's/Search/Replace/g'
é o mesmo ques/'Search'/'Replace'/g
es/Search/Replace/g
para BASH. Você só precisa ter cuidado com caracteres especiais (e espaços).Sugiro usar a
-n
opção quando você não estiver certo de ter as expressões regulares corretas. Ele mostra o que seria renomeado e sai sem fazer isso. Por exemplo:Isso listará todas as alterações que ele teria feito se você não tivesse colocado a
-n
bandeira lá. Se parecer bom, pressione Uppara voltar e apague-n
e pressione Enter(ou substitua-o por-v
para exibir todas as alterações que fizer).Nota : As versões do Ubuntu acima do 17.04 não são fornecidas
rename
por padrão, no entanto, ainda estão disponíveis nos repositórios. Usesudo apt install rename
para instalá-lofonte
rename
commmand, este é o que eu fiz para acrescentar:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
no seu padrão, ele corresponderá a todas as extensões de arquivo de 3 dígitos em um grupo passivo. Exemplo:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Dê uma olhada nesta planilha de regex .Tente pirenaamer .
Não está integrado ao nautilus, mas faz o trabalho. Aqui está uma revisão.
Thunar (parte do XFCE) também possui um renomeador que você pode executar separadamente.
fonte
Parece haver um projeto na barra de ativação chamado nautilus-renamer . Você pode instalá-lo executando
make install
depois de baixar o script e descompactá-lo. Parece ter algumas funcionalidades ou, se você conhece alguma programação, pode aprimorá-la conforme sua necessidade, pois é apenas um script python.fonte
Na linha de comando, para renomear um único arquivo, o comando é simplesmente
Se você quiser fazer isso em lote, provavelmente fará isso por meio de um script. Se você fornecer mais detalhes, eu ou outra pessoa provavelmente poderemos preparar um para você. Dito isto, um script para anexar itens a um arquivo pode ser assim:
Dependendo exatamente de como você precisa das coisas renomeadas, isso provavelmente será alterado, por exemplo, se você tiver regras de renomeação específicas a seguir. (Pessoalmente, eu faria isso por meio de um script Perl, já que meu bash-foo não é tão bom, mas sou apenas eu.)
Observe que eu consegui a separação do nome do arquivo e da extensão de uma pergunta anterior .
fonte
Caso deseje fazê-lo sem linha de comando, semelhante ao que você vem fazendo no Windows, use a tecla de seta para a direita em vez da tecla tab . Isso selecionará o próximo arquivo, assim como a guia no Windows.
fonte
Não é realmente a mesma pergunta de como pode renomear muitos arquivos de uma só vez? mas vou sugerir o mesmo programa que sugeri nessa resposta: qmv .
O qmv é uma ferramenta útil do pacote renameutils. Ele permite que você use seu editor de texto favorito para renomear arquivos. Combinado com o poder do vim, você tem um excelente utilitário de renomeação.
Eu costumo invocá-lo como
qmv -f do
no diretório em que quero renomear um monte de arquivos. Ou se eu quiser renomear recursivamenteqmv -R -f do
.Sempre que preciso renomear vários arquivos, sempre recorro ao qmv (e vim).
http://www.nongnu.org/renameutils/
fonte
Se a única opção adequada é renomear os arquivos manualmente, uma ótima maneira de fazer isso é usando
vidir
(nomoreutils
pacote):Exemplos
Renomeando arquivos seletivamente
Conteúdo atual do diretório de trabalho:
Execute
vidir
, renomeie os nomes de arquivos nas linhas que contêm os nomes de arquivos que você deseja renomear; pressione CTRL+ Oe CTRL+ X:Alternando nomes de arquivos seletivamente
Conteúdo atual do diretório de trabalho:
Conteúdo atual dos arquivos do diretório de trabalho:
Corra
vidir
, troque os números nas linhas que contêm os nomes de arquivos que você deseja alternar; pressione CTRL+ Oe CTRL+ X:Removendo arquivos seletivamente
Conteúdo atual do diretório de trabalho:
Execute
vidir
, remova as linhas que contêm os arquivos que você deseja excluir; pressione CTRL+ Oe CTRL+ X:fonte
Estou usando o krename. É um aplicativo GUI. Poderia ler tags mp3 e assim por diante.
Ele existe como um aplicativo separado e também como parte do Krusader.
Há também um
rename
script - que faz parte da instalação padrão do perl (você provavelmente o instalou). Confira comman rename
.fonte