Shell-Befehl/Skript zum löschen von Dateien, deren Namen in einer text Datei
Habe ich eine Liste von Dateien in einem .txt-Datei (z.B. list.txt). Ich will die Dateien löschen, die in diese Liste. Ich habe nicht getan, - scripting vor. Könnte einige geben, die das shell-script/Befehl, den ich verwenden kann. Ich habe die bash-shell.
Du musst angemeldet sein, um einen Kommentar abzugeben.
langsam ist.
wird scheitern, wenn es zu viele Argumente.
Ich denke, es sollte funktionieren:
rm $(<list.txt)
schneller ist, +1 für die Erwähnung der Einschränkung auf die Anzahl der Argumente.Diesen Befehl ausprobieren:
list.txt
. Anscheinend, du nicht. 🙂Wenn die Dateinamen Leerzeichen, keine der anderen Antworten wird die Arbeit; Sie werden die Behandlung jedes Wortes als separate Datei Namen. Vorausgesetzt, die Liste der Dateien wird in
list.txt
, das funktioniert immer:list.txt
so ist dies verursacht ihm Probleme, aus irgendeinem Grund 😉Folgende arbeiten sollten, und Blätter Sie Raum, um andere Dinge tun, wie Sie die Schleife Durchlaufen.
Edit: tun Sie das nicht, siehe hier: http://porkmail.org/era/unix/award.html
for Datei in $(cat list.txt); do rm $file; done$(cat foo)
mit$(<foo)
zu vermeiden, laichen ein extra-Prozess (und, wenn Sie mir, Tippfehler sowie).Für die schnelle Ausführung auf macOS, wo
xargs
benutzerdefinierte Trennzeichend
ist nicht möglich: