Eu tenho essa pasta enorme com milhares de arquivos não ordenados. É possível mover os primeiros 5000s para uma subpasta através do mv
comando? Por enquanto, movo arquivos com
mv *some_pattern* ./subfolder1/
Por enquanto, movo imagens aleatoriamente, não é realmente importante se não houver exatamente 5000 arquivos em cada subpasta. Tem algum jeito melhor de fazer isso?
shell
command-line
shell-script
wildcards
Fabinout
fonte
fonte
Respostas:
fonte
-
ou.
e assumindosubfolder1
em si não aparecer nessa lista.)$ sudo mv `ls | head -50000` 01/ sudo: unable to execute /bin/mv: Argument list too long
Com
zsh
:Para mover até 5000 arquivos regulares na ordem em que estão no diretório
Para os primeiros 5000 na lista classificada lexicograficamente:
Se você receber um erro sobre a lista arg por muito tempo . Você pode usar
zsh
omv
comando buitin emitindo:primeiro.
POSIXly:
fonte
Uma versão que é simples e suporta caracteres especiais, espaços etc.
Para que isso funcione como está,
dir2
deve existir e você deve executá-lo a partir do diretório pai dedir1
edir2
.Isso moverá 1000 arquivos de dir1 para dir2.
fonte
ls -Q -S dir1 | head -1000 | xargs -i mv dir1/{} dir2/
para mover 1000 maiores arquivos em dir1 (-S arquivo de listas por tamanho)ls -Q
não produz uma saída compatível comxargs
o formato de entrada esperado. Ajuda para nomes de arquivos que contêm caracteres de espaço, mas não para aspas duplas ou barras invertidas e prejudica nomes de arquivos que contêm caracteres de controle, incluindo TAB.Pode ser necessário fazer algo assim:
Esse script funciona em bash, ksh, sh e em várias variantes do UNIX.
fonte
destination
se ele não aparecer nessa lista.)comando abaixo
No
find
comando,.
(ponto) indica o diretório atuallocaliza arquivos que começam com Hello e terminam com gz, os primeiros 5000 arquivos serão movidos para o caminho
/data01/path/
fonte
Consegui fazer um movimento de 50.000 com sucesso sem o erro mv bash como este
O engraçado é que isso foi em um compartilhamento de samba; portanto, o limite de 50k é porque a GUI do Windows Explorer não gosta de mais de 60k arquivos em um diretório em geral.
fonte