Der Befehl „find“ ist einer der am häufigsten verwendeten Befehle unter Linux. Hier finden Sie eine Zusammenfassung einiger häufiger Verwendungszwecke.
1. Suche nach Dateinamen.
Suchen Sie im aktuellen Verzeichnis nach allen Dateien, die mit txt enden. Der zweite Befehl verwendet den Parameter -exec, um eine Operation für alle gefundenen Dateien auszuführen. Achten Sie auf das Format, es dürfen keine Leerzeichen oder ; fehlen. Der Parameter -name kann reguläre Ausdrücke verwenden, wie zum Beispiel das zweite Beispiel
find ./* -name "*.txt"
find ./* -name "[ab]*.py"
find ./* -name "*.pyc" -exec rm {} ;
2. Suche nach Änderungszeit
Suchen Sie Dateien, die am aktuellen Tag im aktuellen Verzeichnis geändert wurden. -1 gibt Dateien an, die vor einem Tag geändert wurden. -2 bedeutet die ersten beiden Tage. find ./* -mtime n n bedeutet, dass die letzte Änderung an den Dateidaten n*24 Stunden her ist. +n bezieht sich auf vor n Tagen, -n bezieht sich auf innerhalb von n Tagen (denn -mmin bezieht sich auf n Minuten), n bezieht sich auf den n-ten Tag, ihre Bedeutungen sind unterschiedlich, achten Sie auf die Unterscheidung.
find ./* -mtime 60 -type f -print
find ./* -mmin -60 -type f -print
find ./* -mmin +60 -type f -print
3. Dateistatusänderung
Im Vergleich zum vorherigen Parameter ist das Grundprinzip dasselbe, aber die Bedeutung dieses Parameters besteht darin, dass die Berechtigungen der Datei geändert werden. Das Ändern des Inhalts und das Ändern der Berechtigungen der Datei sind unterschiedlich. Gemeint ist hier, dass die Daten des Datei-Inodes geändert werden, z. B. die Berechtigungen der Datei, der Eigentümer und andere Informationen. cmin bedeutet, dass die Berechtigungen in den letzten 60 Minuten geändert wurden, und ctime bedeutet, dass die Berechtigungen in den letzten Tagen geändert wurden.
find ./* -cmin +60 -type f -print
find ./* -ctime -60 -type f -print
4
Gemäß der Gruppe zu Zu welcher Datei gehört und welcher Benutzer -user und -nouser ist, findet alle Dateien des aktuell gelöschten Systems. Benutzer -group und -nogroup haben ähnliche Funktionen.
find ./* -user fox
find ./* -nouser
5
find vermeidet ein bestimmtes Verzeichnis und vermeidet mehrere Verzeichnisse. Unter ihnen bedeutet -a und, -o bedeutet oder.
find test -path "test/test4" -prune -o -print
find test ( -path test/test4 -o -path test/test3 ) -prune -o -print
find . ( -path ./modules -o -path ./framework -o -path ./utils -o -path ./config ) -prune -o -name "Bigger.*" -print
6
-perm-Option bezieht sich auf die Zugriffsberechtigung der Datei
find -perm 755 -print
7
Verwenden Sie den Inode, um die Dateinummer zu finden. Die Inode-Nummer kann im Suchbefehl wie unten gezeigt angegeben werden. Hier benennt der Befehl „find“ eine Datei mit der Inode-Nummer um. Sie können diese bestimmte Datei auch über rm löschen.
ls -i1 test*
16187429 Name der Testdatei
16187430 Name der Testdatei
find -inum 16187430 -exec mv {} Name der neuen Testdatei ;
8
Finden Sie die 5 größten Dateien im aktuellen Verzeichnis
find . -type f -exec ls {} ; | head -5
9Der folgende Befehl löscht *.zip-Dateien, die größer als 100 MB sind.