2012-10-02 12:18:00 +0000 2012-10-02 12:18:00 +0000
39
39

So entfernen Sie unter Linux alle Dateien, die mit einer bestimmten Zeichenfolge beginnen

Ich muss alle Dateien, die mit dem Namen NAME beginnen, in einem Verzeichnisbaum finden und alle diese Dateien mit einem Shell-Befehl entfernen.

Antworten (7)

68
68
68
2012-10-02 12:19:23 +0000

Alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen löschen, deren Dateiname mit “foo” beginnt:

$ find . -type f -name foo\* -exec rm {} \;

NB: mit Vorsicht verwenden - zuerst sichern - auch zuerst einen Trockenlauf machen, z. B.

$ find . -type f -name foo\*

wird Ihnen nur die Namen der Dateien nennen, die gelöscht werden würden.

29
29
29
2016-07-28 10:51:24 +0000

Ich habe diese Methode ausprobiert, die bei mir funktioniert, indem ich den folgenden Befehl ausprobiere.

rm -rf Example*

hier ist “Beispiel” ein Text, der für alle Dateien gleich ist.

11
11
11
2012-10-02 12:22:38 +0000

Sie können find verwenden:

find . -name "name*" -exec rm {} \;
3
3
3
2017-02-24 03:17:48 +0000

Mit der Option globstar (mit shopt -s globstar aktivieren):

rm -f **/NAME*

**/ expandiert zu ./, */, */*/, */*/*/ usw. Wenn Sie einen Verzeichnisnamen haben, der mit NAME beginnt, wird sich der Befehl beschweren, dass rm keine Verzeichnisse entfernen kann, aber das ist alles.

Beachten Sie, dass dies an die Grenzen der Befehlszeilenlänge stoßen kann, wenn der Glob auf viele Dateien passt.

Alternativ, mit so wenig Aufrufen von rm wie möglich, aber ohne Längenbeschränkung der Befehlszeile:

find . -type f -name 'NAME*' -exec rm -f {} +

(Beachten Sie das + anstelle von \; zum Schließen der -exec-Anweisung).

3
3
3
2012-10-02 12:48:10 +0000

Um alle Dateien zu löschen, die einen Namen haben, können Sie es verwenden:

find . -name 'name*' -exec rm {} \;
2
2
2
2018-08-27 16:28:09 +0000

find . -name 'foo'* -type f -delete scheint die einfachste Antwort zu sein.

Sie können dies vorher ohne das Flag -delete ausführen, um zu sehen, welche Dateien gelöscht werden.

-1
-1
-1
2015-03-30 06:04:34 +0000

Suchen Sie nach der “Inode”-Nummer der Datei/des Ordners und löschen Sie dann anhand der Inode-Nummer. Unten ist ein Beispiel:

ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p

find . -inum 3407873 -exec rm -rf {} \;