Suchen und löschen Sie unter Linux Dateien, deren Namen einen bestimmten Text enthalten
In dieser Anleitung wird erläutert, wie Sie mithilfe des Befehls „find“ unter Linux Dateien finden und löschen, deren Namen einen bestimmten Text oder eine bestimmte Zeichenfolge enthalten. Darüber hinaus erfahren Sie, wie Sie Dateien finden und löschen, deren Namen keinen bestimmten Text enthalten.
Einführung
Ich habe viele PDF-Dateien mit einigen wichtigen Linux-Tipps und Tricks. Zur leichteren Identifizierung habe ich diesen Dateien einen eindeutigen Dateinamen gegeben.
Angenommen, ich habe die Dateien, die LDAP-Serverkonfigurationsdetails enthalten, als ldapconfig.pdf, die FTP-Konfigurationsdatei als ftpconfig.pdf und die DHCP-Serverkonfigurationsdetails als dhcp_config gespeichert .pdf usw.
Die meisten davon habe ich in Artikel umgewandelt und hier in unserem Blog gepostet, damit auch andere Nutzer davon profitieren können.
Das Problem besteht darin, dass diese Dateien viel Speicherplatz beanspruchen. Da ich Hunderte von Dateien habe, möchte ich sie nicht einzeln manuell suchen und löschen. Es kann einige Stunden dauern, alle Dateien zu finden und zu löschen.
Auf der Suche nach einer einfachen Lösung habe ich herausgefunden, dass mir der Befehl „find“ in diesem Fall helfen kann. Nachdem ich die Manpages von find command durchgesehen hatte, fand ich eine geeignete Lösung. Weiter lesen.
1. Suchen und löschen Sie unter Linux Dateien, deren Namen einen bestimmten Text enthalten
Schauen Sie sich das folgende Beispiel an. Ich habe die folgenden Dateien in einem Verzeichnis namens "Linux_guides".
cd Linux_guides/$ ls
apache_config.pdf dhcp_config.pdf ldap_config.pdf php_install.pdf
apache_install.pdf ftp_config.pdf mysql_install.pdfIch habe den Installationsteil abgeschlossen und benötige daher nicht die Dateien, deren Dateinamen das Wort „install“ enthalten.
Anstatt die Dateien, die den Ausdruck „install“ enthalten, einzeln zu suchen und zu löschen, können wir sie mit dem folgenden Befehl alle auf einmal löschen:
find -type f -name '*install*' -deleteDer obige Befehl löscht alle Dateien, deren Name den Ausdruck "install" enthält, und behält alles andere bei.
Suchen und löschen Sie unter Linux Dateien, deren Namen einen bestimmten Text enthalten
Wenn die Option delete nicht verfügbar ist, können Sie einen der folgenden Befehle verwenden:
find -type f -name '*install*' -exec rm {} \;Oder,
find -type f -name '*install*' -exec rm {} +Sie fragen sich vielleicht, dass wir dasselbe tun können, indem wir den Befehl "rm" wie folgt verwenden:
rm *install*
Ja, das wird reichen. Der Befehl rm install entfernt jedoch alle Dateien, die „install“ im Dateinamen enthalten, aus dem aktuellen Verzeichnis und meldet sich, wenn ein Verzeichnisname „install“ enthält.
Der Befehl "find -type f" sucht jedoch rekursiv nur nach Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen.
1.1. Suchen Sie unter Linux nach Dateien, deren Namen einen bestimmten Text enthalten
Wenn Sie nur Dateien suchen (nicht löschen) möchten, entfernen Sie einfach die Optionen -delete oder -exec rm {} \; oder -exec rm {} + in den obigen Befehlen.
Der folgende Befehl findet beispielsweise nur die Dateien, deren Namen die Zeichenfolge "install" enthalten:
$ find -type f -name '*install*'Beispielausgabe:
./mysql_install.pdf
./apache_install.pdf
./php_install.pdf2. Suchen und löschen Sie Dateien, deren Namen unter Linux „keinen“ bestimmten Text enthalten
Sie wissen, wie Sie eine Datei löschen, deren Name eine bestimmte Phrase enthält. Sehen wir uns nun an, wie man Dateien findet und löscht, deren Namen keine bestimmte Phrase oder Zeichenfolge enthalten.
Fügen Sie dazu einfach den Parameter '-not' in den Suchbefehl ein, wie unten gezeigt.
find -type f -not -name '*install*' -deleteDer obige Befehl löscht nicht die Dateien, die den Ausdruck "install" in ihrem Namen haben, und löscht alles andere.
Wenn die Option Löschen nicht verfügbar ist, können Sie einen der folgenden Befehle verwenden:
find -type f -not -name '*install*' -exec rm {} \;Oder,
find -type f -not -name '*install*' -exec rm {} +
Suchen und löschen Sie unter Linux Dateien, deren Namen keinen bestimmten Text enthalten
Weitere Einzelheiten zum Befehl „find“ finden Sie in den Manpages.
man findAbschluss
Jetzt wissen Sie, wie Sie eine Datei finden, deren Name einen bestimmten Namen enthält, und wie Sie eine Datei löschen, deren Name ein bestimmtes Wort enthält oder nicht. Dies ist hilfreich, wenn Sie eine große Anzahl von Dateien desselben Typs in einem Verzeichnis löschen möchten.

