Encontre diretórios maiores que X e mova para novo destino

1

Eu quero mover todas as pastas (max-depth = 1) que são maiores que 100 MB para um novo destino. Isso aqui é o que eu tenho até agora:

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

De alguma forma, meu resultado não está sendo movido para o novo destino, apenas vejo uma longa lista de todas as pastas que eu quero mover, em vez de serem movidas.

    
por Ragadabing 03.09.2016 / 13:05

1 resposta

3

A opção -0 para xargs significa que a entrada está sendo nula -separada, não separada por nova linha. No seu script awk , defina o separador de registro de saída ORS como um caractere nulo %code% :

du --max-depth=1 -h --threshold=100MB | head -n-1 | awk 'BEGIN {ORS="
du --max-depth=1 -h --threshold=100MB | head -n-1 | awk 'BEGIN {ORS="%pre%"} {print $2}' | xargs -p -0 -I {} mv {} ../new_location
"} {print $2}' | xargs -p -0 -I {} mv {} ../new_location
    
por 03.09.2016 / 19:28