como mover tudo em um diretório, exceto os subdiretórios para outro diretório?

-1

Eu estava limpando minha casa ( /home ) quando senti a necessidade disso. Ajude-me a mover os arquivos (sem extensão) para outro diretório. No entanto, eu quero manter os diretórios em casa intactos. Vários serviços dependem deles

    
por juggernauthk108 29.04.2016 / 13:36

2 respostas

1

Você deseja mover apenas os arquivos e não os diretórios nem os arquivos nos diretórios. Você pode usar o comando find com ~ (= home) como argumento e também usar maxdepth 1 (pesquisa apenas o diretório pai) e type f (arquivo). O resultado (todos os arquivos no diretório fornecido) é canalizado para xargs (a opção -0 é ignorar significados especiais de alguns caracteres) que executa o movimento . mv -t TargetDirectory move a entrada que foi produzida pelo comando find para TargetDirectory.

find ~ -maxdepth 1 -type f -print0 | xargs -0 mv -t Path/To/Target/Directory

Referências: mv localizar xargs

    
por NonStandardModel 29.04.2016 / 14:39
0

Movendo os arquivos com extensões para /target/directory , assumindo a noção regular de extensões:

find ~ -type f -name '?*.?*' -exec mv -t /target/directory/ {} +

Isso localizará e moverá arquivos recursivamente a partir do seu diretório pessoal.

Eu usei ?*.?* em vez de apenas *.* para que arquivos ocultos no formulário .foobar e arquivos como foobar. sejam excluídos.

Se você não deseja percorrer os subdiretórios (ou seja, não recursivamente):

find ~ -maxdepth 1 -type f -name '?*.?*' -exec mv -t /target/directory/ {} +

Se você quiser mover todos os arquivos, independentemente de ter uma extensão:

find ~ -type f -exec mv -t /target/directory/ {} +

Não recursivamente:

find ~ -maxdepth 1 -type f -exec mv -t /target/directory/ {} +
    
por heemayl 29.04.2016 / 16:49