Ich muss alle Dateien finden, die mit dem Namen NAME
in einem Verzeichnisbaum beginnen, und alle diese Dateien mit einem Shell-Befehl entfernen.
Ich muss alle Dateien finden, die mit dem Namen NAME
in einem Verzeichnisbaum beginnen, und alle diese Dateien mit einem Shell-Befehl entfernen.
Antworten:
um alle dateien zu löschen, deren name name hat --- können sie benutzen
find -name . 'name*' -exec rm {} \;
grep
hat einen -exec
Schalter?
Löschen Sie alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen, deren Dateiname mit "foo" beginnt:
$ find . -type f -name foo\* -exec rm {} \;
Achtung: Vorsichtig verwenden - zuerst sichern - auch zuerst trocken laufen, z
$ find . -type f -name foo\*
teilt Ihnen nur die Namen der Dateien mit, die gelöscht werden sollen.
find . -type f -name foo\* -delete
machte den Trick
Ich habe versucht, auf diese Weise funktioniert es für mich unter Befehl versuchen.
rm -rf Example*
Hier ist "Beispiel" Text, der für alle Dateien gleich ist.
Sie können verwenden find
:
find . -name "name*" -exec rm {} \;
Mit der globstar
Option (aktivieren mit shopt -s globstar
):
rm -f **/NAME*
**/
Expandiert zu ./
, */
, */*/
, */*/*/
etc. Wenn Sie einen haben Verzeichnisnamen mit Start NAME
, wird sich beschweren , der Befehl , dass rm
Verzeichnisse nicht entfernen können, aber das ist alles.
Beachten Sie, dass dies möglicherweise zu Einschränkungen der Befehlszeilenlänge führen kann, wenn der Glob mit vielen Dateien übereinstimmt.
Alternativ können Sie mit so wenigen Aufrufen rm
wie möglich, jedoch ohne Einschränkung der Befehlszeilenlänge, Folgendes ausführen:
find . -type f -name 'NAME*' -exec rm -f {} +
(Beachten Sie die +
statt \;
der engen -exec
Erklärung.)
find . -name 'foo'* -type f -delete
scheint die einfachste Antwort zu sein.
Sie können dies ohne das -delete
Flag ausführen, um zu sehen, welche Dateien gelöscht werden.
Suchen Sie nach der "Inode" -Nummer der Datei / des Ordners und löschen Sie diese mit 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 {} \;