De opdracht find is een van de meest gebruikte in Linux OS.
Het zou gewoon moeilijk zijn om een Linux-omgeving te beheren zonder de commando’s te vinden.
Het helpt u bij het zoeken naar bestanden, mappen op de Linux-server en is uitermate handig voor het onderhoud van bestandssystemen.
In dit artikel heb ik een aantal van de meest voorkomende syntaxis van zoekopdrachten opgesomd om u te helpen met productiviteit.
Contents
Vind bestanden op een specifiek bestandssysteem
Als u de bestandsnaam en het bestandssysteem kent, maar het exacte mappad niet weet, kunt u deze syntaxis gebruiken.
In het onderstaande voorbeeld zoek ik naar het berichtenbestand in het / var-bestandssysteem.
[[email beveiligd] ~] # find / var -name berichten
/ var / log / messages
[[email beveiligd] ~] #
Tips: als u de naam van het bestandssysteem niet kent, kunt u zoeken op / niveau, maar houd er rekening mee dat het even kan duren als u een groot aantal bestandssystemen heeft.
[[email beveiligd] ~] # berichten zoeken / -naam
/ var / log / messages
[[email beveiligd] ~] #
Als u de exacte bestandsnaam niet weet, kunt u ook een jokertekenpatroon gebruiken om te zoeken.
Ex – om error_log te zoeken die je zou kunnen proberen
[[email beveiligd] ~] # find / -name error_ *
/ var / log / httpd / error_log
[[email beveiligd] ~] #
Hoe zit het zoeken naar bestandsnaam met een kleine of hoofdletter, met andere woorden, het negeren van hoofdlettergevoelig?
Welnu, u kunt –iname gebruiken in plaats van –name.
Ex:
[[email beveiligd] var] # vind / -naam BERICHTEN
/ var / log / messages
[[email beveiligd] var] #
Laten we nog een realtime scenario bekijken. Als u het bestandstype kent en ze allemaal wilt doorzoeken.
Als u bijvoorbeeld aan WebSphere werkt, wilt u misschien alle bestanden zoeken die eindigen op .out, dan kunt u het proberen
# vind / -naam * .out
Vind bestanden op basis van eigendom en rechten
Bestanden hebben met 777 toestemming is gevaarlijk omdat iedereen deze kan bewerken of verwijderen, dus als systeembeheerder wilt u misschien een scan uitvoeren om bestanden met 777 rechten te vinden.
Voor een ex – om bestanden te tonen met 777 toestemming onder / opt bestandssysteem.
[[email beveiligd] ~] # find / opt / -type f -perm 777
/ opt / testen
/opt/SystemOut.log
[[email beveiligd] ~] #
Tips: hoe zit het met het afdrukken van bestandseigendom, de tijdstempel in dezelfde regelopdracht?
[[email beveiligd] ~] # find / opt / -type f -perm 777 -exec ls -ltr {} +;
-rwxrwxrwx 1 root root 0 19 juli 03:35 / opt / testing
-rwxrwxrwx 1 root root 0 19 juli 03:36 /opt/SystemOut.log
[[email beveiligd] ~] #
U kunt de machtiging ook wijzigen van 777 in 755 in één syntaxis voor de opdracht zoeken.
# find / opt / -type f -perm 777 -exec chmod 755 {} +;
Het is duidelijk dat je de toestemming van 755 kunt aanpassen aan elke andere die je leuk vindt.
Hoe zit het met het vinden van bestanden, die eigendom is van root of een andere gebruiker?
Dit is erg handig als u problemen ondervindt bij het starten van de services omdat de vorige start door root is gedaan.
Bijvoorbeeld – als tomcat eigendom is van een gebruiker genaamd “tomcatapp” en om een of andere reden bent u begonnen met root.
Raad eens wat er zal gebeuren als je de volgende keer opnieuw opstart met “tomcatapp”?
Dit komt niet omdat een deel van het eigendom van het bestand is gewijzigd in root, en nu kan “tomcatapp” deze bestanden niet wijzigen / verwijderen. Dit is dus erg handig in die situatie.
Hier ziet u hoe u elk bestand dat eigendom is van root kunt doorzoeken in een specifiek bestandssysteem.
# root zoeken / opt / -gebruiker
Notitie: het uitvoeren van deze zoeksyntaxis op / niveau resulteert in zoveel bestanden / mappen, dus misschien wilt u dit regelen door dit in een specifiek bestandssysteem te doen.
Vind bestanden ouder dan bepaalde dagen
Bestandssysteem huishouding is essentieel voor productieondersteuning, en vaak moet u met deze syntaxis omgaan om logboeken te vinden die ouder zijn dan (laten we zeggen) 60 dagen.
Het onderstaande voorbeeld is om het access.log-bestand ouder dan 60 dagen te vinden in het / opt-bestandssysteem.
# find / opt / -name access.log -mtime +60
Tips: als u besluit om dezelfde opdrachtregel te zoeken en te verwijderen, kunt u het als volgt doen. Hiermee wordt access.log ouder dan 60 dagen in het / opt-bestandssysteem gevonden en wordt het verwijderd.
# find / opt / -name access.log -mtime +60 -exec rm {} +;
Hoewel dit erg handig is, wilt u misschien de bestanden vermelden voordat u ze verwijdert. Om dat te doen
# find / opt / -name access.log -mtime +60 -exec ls -ltr {} +;
Vind grote bestandsgrootte
Soms hebt u mogelijk te maken met het regelmatig opschonen van het bestandssysteem omdat een groot aantal logboeken door de toepassing wordt geschreven vanwege een codeprobleem, enz.
Laten we een voorbeeld nemen van het zoeken naar bestanden van meer dan 1 GB in / opt bestandssysteem.
# vind / opt / -grootte + 1G
Tips: Als u weet dat alle bestanden in / opt / met meer dan 1 GB kunnen worden verwijderd, kunt u gewoon zoeken en verwijderen op dezelfde regel.
# find / opt / -size + 1G -exec rm {} +;
Ik hoop dat bovenstaande vindopdrachten handig zijn en je in realtime helpen.
Bekijk voor meer informatie over Linux-opdrachten deze online cursus.
TAGS:
Linux