Eu gostaria de adicionar prefixo em todas as pastas e diretórios.
Exemplo:
eu tenho
Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/
Eu gostaria de adicionar o prefixo "PRE_"
PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/
Saudações,
Respostas:
Graças a Peter van der Heijden , aqui está um que funcionará para nomes de arquivos com espaços:
("-" é necessário para ter sucesso com arquivos que começam com traços, cujos nomes seriam interpretados como opções para o comando mv)
fonte
ls
comando*
e colocar aspas duplas em torno dos argumentosmv
, ele funcionará para arquivos que contenham espaços.Use o script de renomeação desta maneira:
Não há problemas com metacaracteres ou espaços em branco nos nomes de arquivos.
fonte
rename
sempre me ajudou a lidar com vários nomes de arquivos com muita facilidade.Para adicionar prefixo ou sufixo para arquivos (diretórios), você pode usar a maneira simples e poderosa do xargs :
Ele está usando a opção de substituição de parâmetro de xargs: -I. E você pode obter mais detalhes na página de manual.
fonte
ls *.old | xargs -I {} mv {} PRE_{}
Isso pode ser feito executando um
find
comando simples :O comando acima prefixará todos os arquivos e pastas no diretório atual com
PRE_
.fonte
Para adicionar um prefixo a todos os arquivos e pastas no diretório atual usando util-linux's
rename
(ao contrárioprename
da variante perl do Debian e de outros sistemas), você pode:Ele localiza a primeira ocorrência da sequência vazia (que é encontrada imediatamente) e, em seguida, substitui a ocorrência pelo seu prefixo e cola no restante do nome do arquivo até o final. Feito.
Para sufixos , você precisa usar a versão perl ou usar find .
fonte
util-linux
no Debian Stretch parece fornecer isso como/usr/bin/rename.ul
.Se você tem Ruby (1.9+)
fonte
com Perl:
fonte
Aqui está um script simples que você pode usar. Eu gosto de usar o módulo não-padrão
File::chdir
para lidar comcd
operações de gerenciamento ; portanto, para usar esse script como está, será necessário instalá-lo (sudo cpan File::chdir
).fonte
No meu sistema, não tenho o
rename
comando. Aqui está um forro simples. Ele encontra todos os arquivos HTML recursivamente e adicionaprefix_
na frente de seus nomes:fonte
find
você também pode executar comandos, não há necessidade para um loop: stackoverflow.com/a/33297439/2351568Isso irá prefixar seus arquivos no diretório deles.
O
${f%/*}
é o caminho até a última barra/
-> o diretórioo
${f##*/}
é o texto sem nada antes última barra/
-> nome do arquivo sem o caminhoEntão é assim:
fonte