technology

Como copiar e mover arquivos com extensões de arquivo específicas no Linux

.

A sintaxe de linha de comando simples do Linux torna simples copiar e mover arquivos com extensões de arquivo específicas.

Quando você deseja mover ou copiar arquivos com uma extensão de arquivo específica, pode usar o mesmo mv e cp comandos com um caractere curinga, que é uma maneira mais dinâmica de mover o arquivo de uma só vez.

Além disso, você também pode alavancar seu find comando conhecimento para procurar um tipo específico de extensão de arquivo e copiá-lo ou movê-lo para algum outro diretório para organizar sua estrutura de diretório atual.

Copiar arquivos com extensões de arquivo específicas

Como você sabe, comandos cp exigir fonte e destino para copiar arquivos de um diretório para outro diretório, e o mesmo comando pode ser usado com o caractere curinga para copiar arquivos com uma extensão de arquivo específica.

Mover ou Copiar apenas Extensão específica

Por exemplo, se você deseja copiar ou mover todos os “*.TXT” arquivos do seu diretório atual para o ~/Documentos pasta, então você pode usar um asterisco cp caractere curinga com o comando

$ cp -v *.txt ~/Documents
or
$ mv -v  *.txt ~/Documents

como mostrado abaixo

Mover ou Copiar apenas Extensão específica

Mover ou Copiar apenas Extensão específica

Isso é especialmente útil se você tiver vários arquivos com a mesma extensão e precisar copiá-los todos de uma vez.

Mover ou Copiar Várias Extensões Específicas Mas e se você precisar copiar vários arquivos com extensões diferentes? Basta especificar todas as extensões que deseja copiar ou mover, bem como seus caminhos de destino e o cp ou comando mv

cuidará do resto. Digamos que em meu diretório atual eu tenha quatro tipos diferentes de documentos disponíveis e desejo que todos sejam copiados para o meu ~/Documentos

pasta.

$ cp -v *.txt *.odt *.docx *.pdf ~/Documents
or
$ mv -v *.txt *.odt *.docx *.pdf ~/Documents

Para fazer isso, eu usaria o seguinte comando:

A saída do comando acima é mostrada abaixo:
Mover ou Copiar Várias Extensões Específicas

Mover ou Copiar Várias Extensões Específicas

E a saída do comando que acabou de ser executado é a seguinte:

Mova ou copie a extensão de arquivo específica usando o caractere curinga no nome do arquivo Seria ótimo se pudéssemos fazer coisas como dizer: “Quero mover ou copiar “.TXT” ou qualquer extensão de arquivo específica para outro diretório, mas não quero mover todos os “.TXT”

extensões baseadas para o novo destino.” Sim, você pode mover qualquer arquivo com o “.TXT” ou uma extensão semelhante de um diretório para outro, mas você deve certificar-se de que os nomes dos arquivos que você está movendo correspondam a um padrão ou altere o “*”

caracteres curinga para corresponder ao padrão desejado. Para dar um exemplo, digamos que eu precise copiar um arquivo “.txt” cuja primeira letra esteja entre “uma” e “g,”

$ cp -v [a-g]*.txt ~/Documents
or
$ mv -v [a-g]*.txt ~/Documents

mas o restante do arquivo de texto não deve ser copiado para o novo local, o comando abaixo funcionará perfeitamente:

A saída do comando acima é mostrada abaixo:
Mova ou copie a extensão de arquivo específica usando o caractere curinga no nome do arquivo

Mova ou copie a extensão de arquivo específica usando o caractere curinga no nome do arquivo

  • E aqui está o caractere curinga que você pode usar para copiar ou mover um arquivo do diretório: ^
  • Excluir da partida *
  • Corresponde a uma ou mais ocorrências ?
  • [] Corresponde a uma única ocorrência

Especifique um intervalo para correspondência

Encontre e copie arquivos com extensão de arquivo específica

Se você deseja mover todos os arquivos específicos com determinadas extensões de vários diretórios para um diretório específico, o que você fará? find Muito provavelmente, você procurará manualmente a extensão de arquivo específica em cada diretório e, a seguir, a copiará para outro local, certo? Mas eu não recomendo isso porque você pode usar o comando

para encontrar o arquivo com base em seu padrão fornecido.

$ find /path/where/to/look -name "file.extension" | cp -vt /destionation/path

E aqui está a sintaxe que você pode usar para localizar e copiar o arquivo: find Então, vamos dar um exemplo simples onde você aprenderá como usar o comando cp para localizar um arquivo com base em uma determinada extensão de arquivo e, após obter o resultado, você pode usar o mv ou comandos

$ find . -name "*.txt" | xargs cp -vt ~/Documents
OR
$ find . -name "*.txt" | xargs mv -vt ~/Documents

para copiar ou mover o arquivo para o local desejado.

A saída do comando acima é mostrada abaixo:
Encontre e copie arquivos com extensões de arquivo específicas

Encontre e copie arquivos com extensões de arquivo específicas

Para evitar erros, certifique-se de que seu sistema tenha acesso ao caminho de destino.

Leia também: 20+ Find command que você pode usar diariamente O problema com o comando acima surge quando você tem dois arquivos com o mesmo nome de arquivo, como “dir1/nomedoarquivo.txt” e “dir2/nomedoarquivo.txt,”

e quando você usa o comando acima, ele não copia o segundo arquivo devido a um conflito de nome de arquivo.

Outro problema com os comandos é que, quando você copia um arquivo recursivamente, o comando acima não preserva a estrutura do diretório.

$ cp --parents --verbose `find -name *.txt` /home/shen/Documents/

Para corrigir isso, você pode usar o comando abaixo, que permitirá que você copie facilmente qualquer arquivo com uma extensão “.txt”, não importa onde eles estejam localizados na estrutura de diretórios, mantendo seu diretório original intacto

A saída do comando acima é mostrada abaixo:
Copie arquivos específicos com extensão preservando a estrutura do diretório pai

Copie arquivos específicos com extensão preservando a estrutura do diretório pai

Embrulhar

Espero que você tenha achado útil esta discussão sobre como copiar arquivos com a extensão “.txt” preservando a estrutura de diretório original e movendo um tipo específico de extensão de arquivo para outro diretório.

Se quiser, você também pode explorar outro tópico, que também está completo para excluir arquivos com extensões específicas da linha de comando do Linux.

De qualquer forma, se houver algo que eu precise considerar, use o espaço abaixo para fornecer qualquer informação adicional ou feedback.

Um homem com uma tecnologia efusiva que explorou algumas das incríveis coisas da tecnologia e está explorando mais. Enquanto avançava, tive a chance de trabalhar no desenvolvimento Android, Linux, AWS e DevOps com várias ferramentas de código aberto.

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo