Existe outra maneira de renomear um arquivo diferente de usar mv?

2

Eu queria saber se existe outra maneira de renomear um arquivo além de usar mv no linux?

Por exemplo, alterando /home/usr/blah.txt para algo como -home-usr-blah.txt

    
por Tony 28.05.2011 / 22:04

4 respostas

6

Isso mostra que você precisa pensar sobre como você faz a pergunta. Todo mundo - inclusive eu - entendeu mal sua pergunta inicialmente

Você pode usar qmv para renomear em massa interativamente usando um editor. Ele permitirá a busca / substituição e também renomeações cíclicas.

Simples

O que o mv realmente faz no nível do driver é o seguinte:

ln source target
unlink source

Então, você pode fazer isso. Isso, no entanto, pressupõe o cenário otimizado em que source & destino residem no mesmo sistema de arquivos. Se não, você terá que usar cp em vez de ln. Certifique-se de fazer com que um cp -a

Atualize em resposta ao comentário (paranóico):

(ln source target || cp -a source target) && unlink source
por 28.05.2011 / 22:19
3

também hardlinks podem ser usados para renomear arquivos

[ 22:16:50 ~/Desktop ] $ echo 'hello' > myfile
[ 22:16:52 ~/Desktop ] $ ln myfile mynewfile
[ 22:17:04 ~/Desktop ] $ rm myfile
remove myfile? y
[ 22:17:11 ~/Desktop ] $ cat mynewfile
hello
[ 22:17:15 ~/Desktop ] $
    
por 28.05.2011 / 22:18
2

Bem, há rename

Mas se você quiser renomear um caminho completo em um único nome de arquivo, precisará usar outras ferramentas como sed ou awk .

    
por 28.05.2011 / 22:10
2

Você pode usar o recurso "renomear" em várias ferramentas de gerenciamento de arquivos, como o Midnight Commander, ou usar a função rename() de um script Perl (ou funções equivalentes com outras linguagens de programação / script).

    
por 28.05.2011 / 22:28

Tags