Ich bin mir nicht sicher, warum Sie verwenden Das Argument -0
lautet xargs
, da dies angibt, dass die Dateinamen durch Leerzeichen und nicht durch Leerzeichen getrennt sind. Die Ausgabe von du
enthält keine Nullbytes, sodass die gesamte Ausgabe als einzelner Dateiname behandelt wird, der den angezeigten Fehler verursacht.
Wie auch immer, würde ich vorschlagen, find
mit:
find /path/to/source -type d -size -1024M -exec mv -it /path/to/destination {} +
Wenn Sie zufrieden sind, dass du
bereits produziert die Ausgabe, die Sie wollen und es stattdessen verwenden, können Sie den -0
Schalter hinzufügen, so dass es verwendet Null-Byte-Trennzeichen, dann sollte Ihr aktueller xargs
Befehl funktionieren.
versuchen Sie, '-L 1' zu xargs hinzuzufügen:' du -h -d 1 -t -1G | xargs -0 -L 1 mv -it/destination/dir/' – saeedgnu
Danke :) Ich habe versucht mit' -L 1', aber das erzeugt die folgende Fehlermeldung, 'mv: kann nicht stat 'du -h -d 1 -t - 1G \ n ': Keine solche Datei oder Verzeichnis "Ich habe auch versucht mit' -n1', aber das gab mir auch eine Fehlermeldung 'mv: ungültige Option -' h'' – nimrag