Encuentre directorios más grandes que X y muévase a un nuevo destino

Encuentre directorios más grandes que X y muévase a un nuevo destino

Quiero mover todas las carpetas (profundidad máxima = 1) que tengan más de 100 MB a un nuevo destino. Esto es lo que tengo hasta ahora:

du --max-depth=1 -h --threshold=100MB | head -n-1 | awk '{print $2}' | xargs -p -0 -I {} mv {} ../new_location

De alguna manera, mi resultado no se mueve al nuevo destino, solo veo una lista larga de todas las carpetas que quiero mover, en lugar de moverlas.

Respuesta1

La -0opción xargssignifica que la entrada está llegando.nulo-separados, no separados por nuevas líneas. En su awksecuencia de comandos, establezca el separador de registros de salida ORSen un carácter nulo \0:

du --max-depth=1 -h --threshold=100MB | head -n-1 | awk 'BEGIN {ORS="\0"} {print $2}' | xargs -p -0 -I {} mv {} ../new_location

información relacionada