mv (Unix)
O comando mv(move) dos sistemas operacionais unix-like move e renomeia um ou mais arquivos ou diretórios de um lugar para outro. Ou seja, ele copia e modifica o caminho do arquivo original para o caminho desejado e então apaga o arquivo original (assim sendo possível renomear e mudar o diretório de um arquivo simultaneamente).[1][2]
Autor | Mike Parker, David MacKenzie e Jim Meyering |
Desenvolvedor | AT&T Bell Laboratories |
Lançamento | 3 de novembro de 1971, 53 anos atrás |
Versão estável | GNU Core Utilities 8.25 |
Sistema operacional | Unix, Unix-like |
Licença | GNU GPL |
Para usar o comando mv o usuário precisa ter permissões de gravação para todos os diretórios por onde o arquivo vai ser movimentado. Isso ocorre porque o comando altera o conteúdo de ambos os diretórios envolvidos na operação. Vale notar que quando o arquivo é movido dentro do mesmo sistema de arquivo, sua data de modificação não é atualizada.
Uso
editarA sintaxe geral do comando mv é a seguinte[2]:
mv [OPÇÃO]... ORIGEM... DESTINO...
Os argumentos ORIGEM indicam os arquivos e/ou os diretórios que vão ser alterados. Se for especificado apenas um argumento ORIGEM, o parâmetro DESTINO indica o nome do arquivo ou do diretório de destino.
Se forem especificados mais de um parâmetro de ORIGEM, o parâmetro DESTINO deve necessariamente ser um diretório existente, ou pelo menos um link simbólico para um diretório.
As opções são usadas para modificar o comportamento do comando mv e devem ser precedidas por um hífen (-)
Opções
editarAs opções mais comuns são semelhantes ao comando cp
:[1]
- --backup (-b) - Executa uma cópia de segurança de qualquer arquivo existente antes de sobrescrevê-lo, colocando um
~
ao final de seu nome. Se a opção-S
for utilizada o sufixo~
é removido do arquivo - --force (-f) - Não pede confirmações ao usuário e sempre sobrescreve.
- --interactive (-i) - Sempre perguntam antes para o usuário sobrescrever.
- --update (-u) - Sobrescreve os arquivos antigos ou copia os arquivos não localizados.
Outras opções disponíveis são:[3]
- --no-clobber (-n) - Não sobrescreve arquivos já existentes.
- --target-directory (-t) - Move todos os arquivos passados como argumentos para o destino passado como argumento de -t
- --no-target-directory (-T) - O argumento do caminho de destino é tratado como um arquivo normal
Não há uma chave --recursive
. Quando o mv é usado para mover um diretório, ele move todo o diretório e todo o seu conteúdo de forma automática.[1]
Exemplos
editarmv myfile mynewfilename # renomeia 'myfile' para 'mynewfilename'.
mv myfile ~/myfile # move 'myfile' do diretório atual para o diretório principal (home).
# a notação '~' se refere ao diretório de login do usuários
mv myfile subdir/myfile # move 'myfile' para 'subdir/myfile'.
mv myfile subdir # faz o mesmo que a linha anterior, mantendo o nome do arquivo implictamente
mv myfile subdir/myfile2 # move 'myfile' para 'subdir' renomeando o arquivo para 'myfile2'.
mv be.03 /mnt/bkup/bes # copia 'be.03' para o disco 'bkup' no diretório 'bes'
# depois 'be.03' é apagado.
mv afile another /home/yourdir/yourfile mydir
# move múltiplos arquivos para o diretório 'mydir'.
mv /var/log/*z ~/logs # demora mais que o usual se '/var' está em outro sistema de arquivos
# como frequentemente acontece, já que os arquivos serão copiadas e deletados
# tome cuidado quando for usar padrões globalizáveis para nomes de arquivo contendo
# os caracteres ?*[ para assegurar que os argumentos passados para 'mv'
# incluam uma lista de não diretórios e um diretório terminal
man mv # exibe a página do manual para o comando 'mv'.
Arquivo já existente
editarQuando um arquivo é movido/renomeado para outro já existente, o arquivo anterior é deletado. Se o usuário possuí permissão de gravação para o diretório mas não para o arquivo, o comando mv pede uma confirmação antes de proceder com a operação, a menos que a opção -f (force) seja usada.
Comandos relacionados
editar- Cp (Unix) - Copia arquivos e diretórios
- Ln (Unix) - Cria ligações simbólicas e físicas
- Rm (Unix) - Remove arquivos e diretórios
Notas e Referências
- ↑ a b c Burtch, Ken O. Ciência Moderna, ed. Scripts de Shell Linux com Bash. 2005 1 ed. Rio de Janeiro: [s.n.] 522 páginas. 8573934050
- ↑ a b «GNU Coreutils: mv invocation». www.gnu.org. Consultado em 30 de março de 2019
- ↑ «mv(1): move files - Linux man page». linux.die.net. Consultado em 30 de março de 2019