emin değilim kullandığınız neden -0
argümanı, xargs
argümanında, dosya adlarının boşluklardan ziyade boş baytlarla ayrıldığını belirtir. du
çıktısı hiçbir null bayt içermeyecek, dolayısıyla tüm çıktı tek bir dosya adı olarak ele alınacak ve bu da gördüğünüz hatayı alacaktır.
Neyse, find
kullanarak öneririm: Eğer du
zaten istediğiniz ve bunun yerine kullanmak istediğiniz çıktıyı üreten olduğunu memnunsanız
find /path/to/source -type d -size -1024M -exec mv -it /path/to/destination {} +
, sen -0
anahtarı ekleyebilirsiniz böylece null byte separators kullanır, o zaman geçerli xargs
komutunuz çalışmalıdır.
deneyin Xargs için '-L 1' ekleyerek:' du -h -d 1 -t -1G | xargs -0 -L 1 mv -it/destination/dir/' – saeedgnu
Teşekkürler :) '-L 1' ile denedim ama aşağıdaki hata iletisini üretir, 'mv: duv' olamaz du -h -d 1 -t - 1G \ n ': Hayır böyle bir dosya ya da dizin 'Ben de denedim' -n1 'ama aynı zamanda bana bir hata mesajı verdi' mv: geçersiz seçenek -' h'' – nimrag