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).

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 A sintaxe geral do comando mv é a seguinte: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 As opções mais comuns são semelhantes ao comando cp:

--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:

--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.

Exemplos mv 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 Quando 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

Cp (Unix) - Copia arquivos e diretórios Ln (Unix) - Cria ligações simbólicas e físicas Rm (Unix) - Remove arquivos e diretórios

Categoria:Programas padrões do Unix Categoria:Programas Unix