Tengo esta enorme carpeta con miles de archivos desordenados. ¿Es factible mover los primeros 5000 a una subcarpeta mediante el mv
comando? Por ahora muevo archivos con
mv *some_pattern* ./subfolder1/
Por ahora, muevo las imágenes al azar, no es realmente importante si no hay exactamente 5000 archivos en cada subcarpeta. Hay una mejor manera de hacerlo?
shell
command-line
shell-script
wildcards
Fabinout
fuente
fuente
Respuestas:
fuente
-
o.
y suponiendosubfolder1
que no aparezca en esa lista.)$ sudo mv `ls | head -50000` 01/ sudo: unable to execute /bin/mv: Argument list too long
Con
zsh
:Para mover hasta 5000 archivos regulares en el orden en que están en el directorio.
Para los primeros 5000 en la lista ordenada lexicográficamente:
Si obtiene un error sobre la lista arg demasiado tiempo . Puede usar
zsh
elmv
comando buitin emitiendo:primero.
POSIXY:
fuente
Una versión que es simple y admite caracteres especiales, espacios, etc.
Para que esto funcione tal como está
dir2
debe existir y debe ejecutarlo desde el directorio principal dedir1
ydir2
.Esto moverá 1000 archivos de dir1 a dir2.
fuente
ls -Q -S dir1 | head -1000 | xargs -i mv dir1/{} dir2/
para mover 1000 archivos más grandes en dir1 (-S enumera el archivo por tamaño)ls -Q
no produce una salida compatible conxargs
el formato de entrada esperado. Ayuda para nombres de archivos que contienen caracteres de espacio, pero no para comillas dobles o barras diagonales inversas y daños para nombres de archivos que contienen caracteres de control, incluyendo TAB.Es posible que deba hacer algo como esto:
Este script funciona en bash, ksh, sh y múltiples variantes de UNIX.
fuente
destination
que no aparezca en esa lista.)ejecutar debajo del comando
En el
find
comando,.
(punto) denota el directorio actualbusca archivos que comienzan con Hello y terminan con gz, los primeros 5000 archivos se moverán a la ruta
/data01/path/
fuente
Pude hacer con éxito un movimiento de 50,000 sin el error mv bash como este
Curiosamente, esto estaba en un recurso compartido de samba, por lo que el límite de 50k se debe a que la GUI del Explorador de Windows no le gustan más de 60k archivos en un directorio en general.
fuente