Dateien löschen, wenn name NICHT enthalten einige Worte
Ich bin Linux verwenden wollen und entfernen Sie einige Dateien mit der shell.
Ich habe einige Dateien in meinem Ordner, einige Dateinamen enthalten das Wort "gut", andere nicht.
Zum Beispiel:
ssgood.wmv
ssbad.wmv
goodboy.wmv
cuteboy.wmv
Möchte ich die Dateien entfernen, die NICHT enthalten "gute" im Namen, so werden die übrigen Dateien sind:
ssgood.wmv
goodboy.wmv
Wie zu tun, dass die Verwendung rm
in der Schale? Ich versuche es mal mit
rm -f *[!good].*
aber es funktioniert nicht.
Vielen Dank!
- Meinst du "Datei Namen enthalten 'gut'"? Das Beispiel zeigt den Dateinamen, aber Sie sagen, dass die "Dateien enthalten das Wort"...
- Die Dateinamen enthalten gute. Ich bin kein englischer Muttersprachler. Dank 4-heads-up.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Befehl sollte das tun, was Sie brauchen:
Wird es wahrscheinlich schneller laufen als die anderen Befehle, da Sie nicht mit der Verwendung eines regex (das ist langsam und unnötig für solch einen einfachen Vorgang).
grep
ist sowohl regex-powered und sagenhaft schnell.ls
Befehl listet mehrere Dateinamen pro Zeile. Müssen Sie den"-1"
"eine-Datei-pro-Zeile" - option wie folgt:ls -1 | grep ...
ls
immer Listen eine Datei pro Zeile, so dass es perfekt funktioniert. Seltsam, es ist wahrscheinlich eine Standard-option irgendwo. Trotzdem, ich habe die-1
option, so wird es immer funktionieren.alias ls='ls -1'
Befehl in eine der startup-Dateien.ls
.Mit bash, Sie können Holen Sie "negative" matching über die
extglob
shell-option:Können Sie
finden
mit der-not
Betreiber:Ich habe
-exec
zu nennenrm
da, aber die- ich Frage mich, obtut es, siehe unten.find
hat eine integrierte Aktion entfernenAber sehr vorsichtig. Hinweis: in der oben ich habe ein
-a -not -name "."
Klausel, da es sonst abgestimmt.
ist das aktuelle Verzeichnis. Also ich würd testen Sie gründlich mit-print
vor dem setzen in die-exec rm {} \;
bit!Update: Yup, ich habe es nie benutzt, aber es ist in der Tat ein
-delete
Aktion. Also:Wieder, vorsichtig sein, und überprüfen Sie, du bist kein matching mehr als Sie wollen-match-ersten.
-print
ersten. 🙂