Questão Como eu renomeio um diretório através da linha de comando?


Eu tenho o diretório /home/user/oldname e quero renomeá-lo para /home/user/newname. Como posso fazer isso em um terminal?


473
2017-08-08 16:58


origem


Veja também: Como mover um diretório - kenorb
Use sempre mv ou rename. - John Strood


Respostas:


mv /home/user/oldname /home/user/newname

620
2017-08-08 17:10



Relacionado brighthub.com/computing/linux/articles/20667.aspx - N.N.
Artigo legal. Esse é exatamente o ponto. - Rafał Cieślak
Isso não funcionará se o novo nome já for um diretório existente. Em vez disso, ele moverá o diretório antigo para dentro do novo. - cxrodgers
Se o nome do diretório for o mesmo com a capitalização, você obterá No such file or directory. Para evitar isso, faça algo como mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder. - DutGRIFF
@cxrodgers: passar --no-target-directory (-T), para evitar tratar newname como um diretório de destino. - jfs


mv pode fazer dois trabalhos.

  1. Pode mover arquivos ou diretórios
  2. Pode renomear arquivos ou diretórios

Para apenas renomear um arquivo ou diretório digite isto no Terminal:

mv old_name new_name 

com espaço entre os nomes antigos e novos.

Para mover um arquivo ou diretório, digite isso no Terminal.

mv file_name ~/Desktop 

Ele moverá o arquivo para a área de trabalho.

Se é um diretório, você deve adicionar -R antes do nome do diretório:

mv -R directory_name ~/Desktop

104
2018-04-21 13:58



mv no Ubuntu é do GNU coreutils. AFAICT não tem um -R opção, nem é necessário ao mover um diretório. - arielf
-r nem funciona - user1735921
A opção correta é -T. Veja @ bmaupin responda por seu comportamento. - chronometric


mv -T /home/user/oldname /home/user/newname

Isso renomeará o diretório se o destino não existir ou se existir, mas estiver vazio. Caso contrário, isso causará um erro.

Se você fizer isso em vez disso:

mv /home/user/oldname /home/user/newname

Uma das duas coisas acontecerá:

  • E se /home/user/newname não existe, vai mudar o nome /home/user/oldname para /home/user/newname
  • E se /home/user/newname existe, vai passar /home/user/oldname para dentro /home/user/newname, isto é /home/user/newname/oldname

Fonte: Como decidir que mv se move em um diretório em vez de substituir o diretório?


27
2018-04-27 18:31





este gvfs-move O comando também renomeia arquivos e diretórios.

gvfs-move /home/user/oldname /home/user/newname

4
2018-04-21 05:26





Se você quiser renomear um diretório em seu nível no sistema de arquivos (por exemplo, você está em seu diretório pessoal e deseja renomear um diretório que também esteja em seu diretório pessoal):

mv Directory ./NewNameDirectory

4
2017-07-12 13:26





O gvfs-rename também renomeia os diretórios. Ele dará um erro se um diretório com o novo nome já existir. A única limitação é que você não pode usar um caminho com o nome da pasta. assim

gvfs-rename /home/boo /home/boo-the-dog 

não vai funcionar, mas

cd /home 
gvfs-rename boo boo-the-dog 

vai funcionar. Não é tão útil quanto o mv -T, mas eu li no homem que ele foi feito para operações de rede.


1
2017-11-29 07:58