Antworten:
Wenn Sie eine Datei pro Zeile haben, können Sie dies folgendermaßen tun:
tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm --
Die Dateiliste wird als Eingabe für den tr
Befehl angegeben, der das Dateitrennzeichen vom Zeilenvorschub in das Nullbyte ändert. Der xargs
Befehl liest bei der Eingabe durch Nullbytes getrennte Dateien und startet den Befehl rm mit den als Argumente angehängten Dateien.
rm --
statt nur zu verwenden rm
, damit Dateinamen, die mit einem Bindestrich beginnen, nicht als rm
Parameter behandelt werden.
monu.txt' Try
tr --help 'für weitere Informationen. rm: fehlender Operand Versuchen Sie `rm --help 'für weitere Informationen. ........ Das ist alles was ich sehen kann
Die obige Antwort ist insofern in Ordnung, als es sehr schwierig ist, Dateinamen mit Leerzeichen und "seltsamen Zeichen" zu behandeln. Aber der einfachste Weg, wenn die Dateinamen vernünftig sind, ist nur (Warnung, Bashismus!):
rm $(< /the/file/with/names)
Für reguläre Shell:
rm `cat /the/file/with/names`