fbpx

Comandos Linux – Comando mv

Comando Linux mv

comando mv

Nos sistemas operacionais Linux , o comando mv move e renomeia arquivos e diretórios.

Sintaxe

Renomeie um arquivo chamado origem para o destino :

  mv [ opções ] [ -T ] destino de origem

Mova o (s) arquivo (s) de origem para um diretório chamado destination :

  mv [ opções ] origem [ origem2 ...] destino

Igual à sintaxe anterior, mas especificando o diretório primeiro e o (s) arquivo (s) de origem por último:

  mv [ opções ] -t fonte de destino [ fonte2 ...]

Opções

– backup [ = vcm ]Faça um backup de cada arquivo de destino existente, usando o método de controle de versão vcm . Se vcm for omitido, –backup se comportará da mesma forma que -b (os backups são criados, usando o método de controle de versão padrão). Consulte Fazendo backup de arquivos para obter detalhes.
-bComo – backup , mas não aceita um método de backup. Em vez disso, o método especificado pela variável de ambiente VERSION_CONTROL é usado. Backups simples são criados se a variável não estiver definida. Consulte os métodos de controle de versão para obter detalhes.
-f , –forceSempre substitua os arquivos existentes sem avisar . Isso pode ser útil se você precisar sobrescrever vários arquivos cujas permissões sejam somente leitura ; se você não especificar -f , será solicitado a cada arquivo.
-i , –interativoAvisar antes de substituir um arquivo existente, independentemente das permissões do arquivo.
-n , –no-clobberNunca substitua nenhum arquivo existente.

Nota: Se você especificar mais de uma das opções acima -i , -f ou -n , somente a opção final especificada entrará em vigor.

–faixas-de-arrastoRemova as barras finais de cada argumento de origem .
-S , –suffix = sufixoEspecifique o sufixo do nome do arquivo a ser usado para todos os arquivos de backup. O padrão é ” ~ “.
-t , –target-directory = destinationMova todas as fontes para o destino do diretório.
Diretório -T , –no-target-Trate o destino como um arquivo normal, não como um diretório.
-u , –updateNão substitua arquivos se eles forem mais novos. Uma movimentação só acontecerá se o arquivo de destino for mais antigo que o arquivo de origem ou se o arquivo de destino ainda não existir.
-v , –verboseForneça saída detalhada . Imprima o nome de cada arquivo movido.
–SocorroExiba uma mensagem de ajuda e saia.
–versãoExiba informações da versão e saia.

Fazendo backup de arquivos

Se você usar as opções -b ou –backup , o mv renomeará o arquivo de destino, se existir, acrescentando um sufixo ao nome do arquivo. Isso salva uma cópia do arquivo original em vez de substituí-lo.

Existem dois tipos de backups: simples e numerados .

  • Os backups simples excluem um arquivo de backup existente, se ele já existir. Apenas um arquivo de backup é mantido. O sufixo padrão para backups “simples” é um til (” ~ “). Você pode alterar esse sufixo com a opção –suffix ou configurando a variável de ambiente SIMPLE_BACKUP_SUFFIX . Por exemplo, o arquivo.txt seria copiado como arquivo.txt ~ .
  • Os backups numerados mantêm os arquivos de backup existentes, criando backups adicionais com um número crescente no nome do arquivo. Nenhum arquivo de backup é excluído. O sufixo para backups numerados é ” . ~ N ~ “, onde n é um número inteiro . Por exemplo, o backup do arquivo.txt seria feito como arquivo.txt. ~ 1 ~ e , em seguida, arquivo.txt. ~ 2 ~ , etc.

Métodos de controle de versão

Estão disponíveis regras adicionais para criar arquivos de backup, chamados métodos de controle de versão. O método de controle de versão pode ser especificado com a opção –backup ou configurando a variável de ambiente VERSION_CONTROL . Os métodos são:

Nome do métodoDescrição
nenhum , foraNunca faça backups, mesmo que a opção –backup seja fornecida.
numerado , tFaça backups numerados.
existente , nulonumerado se já existirem backups numerados, caso contrário, simples .
simples , nuncaSempre faça backups simples.

Exemplos

  mv myfile.txt myfiles

Mova o arquivo myfile.txt para o diretório myfiles . Se myfiles for um arquivo, ele será substituído. Se o arquivo estiver marcado como somente leitura, mas você é o proprietário, será solicitado que você o substitua.

  mv myfiles myfiles2

Se myfiles for um arquivo ou diretório e myfiles2 for um diretório, mova myfiles para myfiles2. Se myfiles2 não existir, o arquivo ou diretório myfiles será renomeado myfiles2 .

  mv myfile.txt ../

Mova o arquivo myfile.txt para o diretório pai do diretório atual .

  mv -t meusarquivos meuarquivo1 meuarquivo2

Mova os arquivos myfile1 e myfile2 para o diretório myfiles .

  mv myfile1 myfile2 myfiles

Igual ao comando anterior.

  arquivo mv -n file2

Se o arquivo2 existir e for um diretório, o arquivo será movido para ele. Se o arquivo2 não existir, o arquivo será renomeado como arquivo2 . Se o arquivo2 existir e for um arquivo, nada acontece.

  arquivo mv -f file2

Se o arquivo2 existir e for um arquivo, ele será substituído.

  arquivo mv -i file2

Se o arquivo2 existir e for um arquivo, um prompt será fornecido:

  mv: sobrescrever 'arquivo2'?

Digitar “y”, “yes”, “yes” ou “y” resultará na substituição do arquivo. Qualquer outra entrada pulará o arquivo.

  arquivo mv -fi file2

O mesmo que mv -i . Avisar antes de substituir. A opção f é ignorada.

  mv -if arquivo file2

O mesmo que mv -f . Substituir sem aviso. a opção i é ignorada.

  mv Meu \ arquivo.txt Meu \ arquivo \ 2.txt

Renomeie o arquivo ” Meu arquivo.txt ” para ” Meu arquivo 2.txt “. Aqui, os espaços no nome do arquivo são escapados , protegendo-os de serem interpretados como parte do comando.

  mv "Meu arquivo.txt" "Meu arquivo 2.txt"

Igual ao comando anterior.

  mv "My file.txt" myfiles

O resultado deste comando:

  • Se meus arquivos forem um diretório, Meu arquivo.txt será movido para meus arquivos .
  • Se meus arquivos forem um arquivo, My file.txt será renomeado como myfiles e os myfiles originais serão substituídos.
  • Se meus arquivos não existirem, Meu arquivo.txt será renomeado para meus arquivos .
  mv My * .txt myfiles

Aqui, * é um curinga que significa “qualquer número, incluindo zero, de qualquer caractere “.

  • Se myfiles for um diretório: todos os arquivos com a extensão .txt , cujo nome começa com My , serão movidos para myfiles .
  • Se os meus arquivos não existirem ou não forem um diretório, o mv reportará um erro e não fará nada.
  meus arquivos My \ file ??. txt

Aqui ? é um curinga que significa “zero ou um de qualquer caractere”. É usado duas vezes, para que ele possa corresponder a um máximo de dois caracteres.

  • Se myfiles for um diretório: qualquer arquivo com zero, um ou dois caracteres entre Meu arquivo e .txt em seu nome será movido para myfiles .
  • Se os meus arquivos não existirem ou não forem um diretório, o mv reportará um erro e não fará nada.

Dica: Para obter mais informações sobre como os curingas são usados ​​nos comandos, consulte expansão do nome do caminho no bash .

Fazendo backups

  arquivo mv -b file2

Se o arquivo2 existir, ele será renomeado para arquivo2 ~ .

  mv -b --suffix = arquivo .bak arquivo2

Se o arquivo2 existir, ele será renomeado para file2.bak .

  mv - backup = numerado;  arquivo mv file2

Se o arquivo2 existir, ele será renomeado como arquivo2. ~ 1 ~ . Se o arquivo2. ~ 1 ~ existir, ele será renomeado como arquivo2. ~ 2 ~ , etc.

  VERSION_CONTROL = arquivo mv -b numerado2

Igual ao comando anterior. A variável de ambiente é definida apenas para este comando.

  exportar VERSION_CONTROL = numerado;  arquivo mv -b file2

Ao exportar a variável de ambiente VERSION_CONTROL , todos os comandos mv -b da sessão atual usarão backups numerados.

  exportar VERSION_CONTROL = numerado;  arquivo mv file2

Embora a variável VERSION_CONTROL esteja configurada, nenhum backup é criado porque -b (ou –backup ) não foi especificado. Se o arquivo2 existir, ele será substituído.

Renomeando arquivos usando expressões regulares

O mv não interpreta expressões regulares (regex).

Se você precisar renomear muitos arquivos, usando um mapeamento complexo ou diferenciado dos nomes de arquivos antigos para os novos, use o comando rename .

renomear aceita expressões regulares do perl . Por exemplo:

  renomeie / Meu \ arquivo (..) / documento $ 1 / 'Meu *

Este comando renomeia os arquivos My file.txt e My file 2.txt para document.txt e o documento 2.txt .

cp – Copia arquivos e diretórios.
ln – Crie um link, ou um link simbólico, para um arquivo ou diretório.
renomear – renomeia vários arquivos usando uma expressão regular.
rm – Remove um diretório.

20 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.