Een bestand zoeken in Linux met de opdracht Zoeken
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