Como mover os primeiros arquivos x

14

Eu tenho essa pasta enorme com milhares de arquivos não ordenados. É possível mover os primeiros 5000s para uma subpasta através do comando mv ? Por enquanto eu 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?

    
por Fabinout 13.12.2013 / 17:57

5 respostas

11
mv 'ls | head -500' ./subfolder1/
    
por 13.12.2013 / 18:03
12

com zsh :

mv -- *(D.oN[1,5000]) ./subfolder1

Para mover até 5000 arquivos regulares na ordem em que estão no diretório.

Para os primeiros 5000 na lista lexicograficamente ordenada:

mv -- *(D.[1,5000]) ./subfolder1

Se você obtiver um erro sobre a lista de argumentos por muito tempo . Você pode usar o comando buitin zsh de mv emitindo:

zmodload zsh/files

primeiro.

POSIXly:

set --
for f in .* *; do
  [ "$#" -lt 5000 ] || break
  [ -f "$f" ] || continue
  [ -L "$f" ] && continue
  set -- "$@" "$f"
done
mv -- "$@" subfolder1/
    
por 13.12.2013 / 18:03
4

Uma versão simples e compatível com caracteres especiais, espaços, etc.

ls -Q dir1 | head -1000 | xargs -i mv dir1/{} dir2/

Para que isso funcione como está, dir2 deve existir e você precisa executá-lo no diretório pai de dir1 e dir2 .

Isto irá mover 1000 arquivos de dir1 para dir2.

    
por 13.02.2018 / 23:23
3

Talvez seja necessário fazer algo assim:

x=1
for file in *
do
    if [ "X$x" = "X#####" ]; then
        break
    fi
    mv $file <destination>
    x='expr $x + 1'
done

Este script funciona nas variantes bash, ksh, sh e múltiplas do UNIX.

    
por 13.12.2013 / 18:10
0
  1. Vá para o diretório para o qual você deseja mover os arquivos
  2. execute abaixo do comando

    find . -name 'Hello*.gz' | head -n 5000 | xargs -I {} mv {} /data01/path/ 
    

No comando find , . (ponto) indica o diretório atual

localiza os arquivos que começam com Olá e terminam com gz, os primeiros 5000 arquivos serão movidos para o caminho /data01/path/

    
por 13.09.2018 / 08:13