De Linux find opdracht is een van de belangrijkste en handigste opdrachten in Linux-systemen. Het kan, zoals de naam al doet vermoeden, bestanden vinden op je Linux-pc op basis van vrijwel alle voorwaarden en variabelen die je instelt. U kunt bestanden vinden op basis van machtigingen, gebruikers, groepen, bestandstype, datum, grootte en andere mogelijke criteria met behulp van de opdracht find .

De find opdracht is standaard beschikbaar op de meeste Linux-distro's, dus je hoeft er geen pakket voor te installeren.

In deze zelfstudie laten we u zien hoe u bestanden op Linux kunt vinden met behulp van verschillende veelgebruikte combinaties van zoekuitdrukkingen op de opdrachtregel.

Zoek bestanden op naam in huidige telefoonboeken

De meest voor de hand liggende manier om bestanden te zoeken is op naam. Ga als volgt te werk om een ​​bestand op naam in de huidige map te vinden:

 vind . -name photo.png 

Als u een bestand op naam wilt zoeken dat hoofdletters en kleine letters bevat, voert u het volgende uit:

 vind . -iname photo.png 

Als je een bestand in de root-directory wilt vinden, voeg je sudo je zoekopdracht met sudo die je alle benodigde machtigingen geeft, en ook het '/' -symbool dat Linux laat zoeken in de root-directory. Ten slotte geeft de -print de mappen van uw zoekresultaten weer. Als je op zoek was naar Gzip, typ je:

 sudo find / -name gzip -print 

Zoek bestanden onder specifieke directory

Als u bestanden onder een specifieke map zoals "/ home" wilt vinden, voert u het volgende uit:

 find / home -name filename.txt 

Als u bestanden wilt zoeken met de extensie ".txt" onder de directory "/ home", voert u het volgende uit:

 find / home -name * .txt 

Om bestanden te vinden waarvan de naam "test.txt" is onder meerdere mappen zoals "/ home" en "/ opt, " voer je uit:

 find / home / opt -name test.txt 

Ga als volgt te werk om verborgen bestanden in de directory "/ home" te vinden:

 find / home -name ". *" 

Om een ​​enkel bestand genaamd "test.txt" te vinden en het te verwijderen, voert u het volgende uit:

 find / home -type f -name test.txt -exec rm -f {} 

Ga als volgt te werk om alle lege bestanden in de map "/ opt" te vinden:

 vind / opt -type f -empty 

Vind mappen met behulp van naam

Als u alle directory's wilt vinden waarvan de naam "testdir" is in de directory "/ home", voert u het volgende uit:

 vind / home -type d-naam testdir 

Als u alle lege mappen onder "/ home" wilt opslaan, voert u het volgende uit:

 find / home -type d -empty 

Zoek naar bestanden met bepaalde machtigingen

De opdracht find kan worden gebruikt om bestanden met een specifieke machtiging te vinden met behulp van de perm optie.

Ga als volgt te werk om alle bestanden te vinden waarvan de machtigingen "777" zijn in de map "/ home":

 vind / home-type f-perm 0777 -print 

Om alle bestanden zonder toestemming "777" te vinden, voer je uit:

 vind . -type f! -perm 777 

Ga als volgt te werk om alle alleen-lezen bestanden te vinden:

 find / home -perm / u = r 

Ga als volgt te werk om alle uitvoerbare bestanden te vinden:

 find / home -perm / a = x 

Om alle sticky bit set-bestanden te vinden waarvan de rechten "553" zijn, voer je uit:

 find / home -perm 1553 

Ga als volgt te werk om alle SUID-setbestanden te vinden:

 find / home -perm / u = s 

Ga als volgt te werk om alle bestanden te vinden waarvan de machtigingen "777" zijn en hun machtigingen in te stellen op "700":

 find / home -type f -perm 0777 -print -exec chmod 700 {}; 

Vind bestanden en mappen op basis van datum en tijd

Om alle bestanden onder "/ opt" te vinden die twintig dagen eerder zijn gewijzigd, voert u het volgende uit:

 find / opt -mtime 20 

Ga als volgt te werk om alle bestanden te vinden onder "/ opt" die twintig dagen eerder zijn geopend:

 find / opt -atime 20 

Om alle bestanden te vinden onder "/ opt" die meer dan dertig dagen eerder en minder dan fiffy dagen na zijn gewijzigd:

 find / opt -mtime +30 -mtime -50 

Ga als volgt te werk om alle bestanden te vinden onder "/ opt" die in de afgelopen twee uur zijn gewijzigd:

 vind / opt -cmin -120 

Vind bestanden en mappen op basis van grootte

Ga als volgt te werk om alle 10 MB-bestanden in de directory "/ home" te vinden:

 find / home -size 10M 

Om alle bestanden onder de "/ home" -directory te vinden die groter zijn dan 10 MB en minder dan 50 MB, voer dan:

 find / home -size + 10M -size -50M 

Om alle ".mp4" -bestanden onder de map "/ home" met meer dan 10 MB te vinden en ze te verwijderen met een enkele opdracht, voert u het volgende uit:

 find / home -type f -name * .mp4 -size + 10M -exec rm {}; 

Conclusie

En daar is het - een gezonde lijst met manieren om de bestanden te vinden die je zoekt op Linux. Het is misschien niet zo eenvoudig als uw rudimentaire Windows-zoekopdracht, maar het is veel gedetailleerder en specifieker. Zijn er hier opdrachten die we hebben gemist? Laat het ons weten in de reacties!

Beeldtegoed: controle door DepositPhotos