Como faço para mover todos os arquivos de uma pasta para outra usando a linha de comando?

155

Gostaria de saber como transferir todos os arquivos de uma pasta para outra pasta com uma linha de comando.

Digamos que eu esteja na pasta "Downloads" e haja 100 arquivos que eu gostaria de mover para a pasta "Vídeos", sem precisar escrever o nome de todos os arquivos.

    
por Michael 06.08.2012 / 17:14

8 respostas

210

Abra um terminal e execute este comando:

mv  -v ~/Downloads/* ~/Videos/

Ele moverá todos os arquivos e pastas da pasta Downloads para a pasta Vídeos.

Para mover todos os arquivos, mas não as pastas:

Se você estiver interessado em mover todos os arquivos (mas não as pastas) da pasta Downloads para a pasta Vídeos, use este comando

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

Para mover apenas arquivos das pastas de download, mas não de subpastas:

Se você quiser mover todos os arquivos da pasta Downloads, mas não os arquivos das pastas da pasta Download, use este comando:

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

aqui, a opção -maxdepth especifica como a localização profunda deve tentar, 1 significa, somente o diretório especificado no comando find. Você pode tentar usar 2 , 3 também para testar.

Veja a página manpage do Ubuntu para uma explicação detalhada

    
por Anwar 06.08.2012 / 17:18
16
mv ~/Downloads/* ~/Videos

Ele moverá todos os arquivos, incluindo subpastas, no diretório que você deseja mv . Se você quiser cp (cópia) ou rm (remover), precisará da opção -r (recursiva) para incluir subpastas.

    
por user223289 08.12.2013 / 04:24
3

É possível usar rsync , por exemplo:

rsync -vau --delete-after src/ dst/

onde:

  • -v , --verbose : aumenta a verbosidade
  • -a , --archive : modo de arquivo; é igual a -rlptgoD (não -H,-A,-X )
  • -u , --update : pula arquivos que são mais recentes no receptor
  • --delete-after : excluir arquivos no lado de recebimento deve ser feito após a conclusão da transferência

Se você tiver privilégios de root, prefixe com sudo para substituir possíveis problemas de permissão.

    
por kenorb 06.06.2015 / 17:08
2

Use

mv -v ~/rootfolder/branch/* ~/rootfolder

Espero que isso ajude. Porque eu tive a mesma dor e perdi muito tempo consertando meu erro.

    
por Udit Chugh 26.01.2015 / 00:06
1
  1. Vá para a linha de comando e entre no diretório para o qual deseja movê-lo com cd folderNamehere
  2. Digite pwd . Isto irá imprimir o diretório que você deseja mover também.
  3. Em seguida, mude para o diretório em que todos os arquivos estão com cd folderNamehere
  4. Agora, mova todos os arquivos do tipo mv *.* typeAnswerFromStep2here

Isso moverá todos os arquivos desse diretório para o outro.

    
por jrh 12.09.2013 / 14:07
0

Para mover um diretório com ou sem conteúdo para seu novo nome, da mesma forma como você usaria o comando mv para renomear um arquivo:

mv -T dir1 dir2

onde:

  • -T trata o destino como um arquivo normal
  • dir1 é o nome original do diretório
  • dir2 é o novo nome do diretório

NB: dir2 não precisa existir.

Espero que isso poupe muito tempo, como noob, antes disso, criaria um diretório com o novo nome e depois moveria o conteúdo do diretório para o diretório criado anteriormente.

Use para subdiretórios

Este comando é útil quando muitos arquivos foram salvos em uma subpasta do diretório de destino, por exemplo, Downloads/mp4 . Neste exemplo, executar mv -T Downloads/mp4 Videos resultará na subpasta mp4 sendo removida e todos os arquivos contidos nela serão movidos para a pasta Vídeos.

    
por Feyisayo Sonubi 09.12.2015 / 08:33
0

Para o caso simples:

mv ~/Downloads/* ~/Videos

Se você quiser também mover os arquivos de pontos, defina a opção de shell dotglob .

shopt -s dotglob
mv ~/Downloads/* ~/Videos

Isso deixa o conjunto de opções do shell.

Por um tempo, use o dotglob, execute os comandos em um subshell:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
    
por Hontvári Levente 22.01.2018 / 11:16
0

tente

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

-tipo com o argumento -tipo você pode especificar o tipo file.on esta declaração que é o arquivo mean.if usando -d significa diretório.

-iname: o método mais comum e óbvio para procurar por um arquivo é usar seu argumento -name. Se você não tem certeza sobre sua diferenciação de maiúsculas e minúsculas, você pode usar o argumento -iname

mv {} e, finalmente, para especificar o diretório de destino e, em seguida, mover os arquivos para lá usando o argumento mv {}

    
por pedram shabani 01.04.2018 / 18:54