Comando Linux 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. |
-b | Como – 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 , –force | Sempre 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 , –interativo | Avisar antes de substituir um arquivo existente, independentemente das permissões do arquivo. |
-n , –no-clobber | Nunca 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-arrasto | Remova as barras finais de cada argumento de origem . |
-S , –suffix = sufixo | Especifique o sufixo do nome do arquivo a ser usado para todos os arquivos de backup. O padrão é ” ~ “. |
-t , –target-directory = destination | Mova 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 , –update | Nã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 , –verbose | Forneça saída detalhada . Imprima o nome de cada arquivo movido. |
–Socorro | Exiba uma mensagem de ajuda e saia. |
–versão | Exiba 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étodo | Descrição |
---|---|
nenhum , fora | Nunca faça backups, mesmo que a opção –backup seja fornecida. |
numerado , t | Faça backups numerados. |
existente , nulo | numerado se já existirem backups numerados, caso contrário, simples . |
simples , nunca | Sempre 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 .
Comandos relacionados
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.