Commando zoeken in Linux (bestanden en mappen zoeken)

0 Comments

het commando find is een van de krachtigste tools in het arsenaal van Linux systeembeheerders. Het zoekt naar bestanden en mappen in een mappenhiërarchie op basis van een door de gebruiker gegeven expressie en kan door de gebruiker gespecificeerde actie uitvoeren op elk bestand dat overeenkomt.

u kunt de opdracht find gebruiken om bestanden en mappen te zoeken op basis van hun rechten, type, datum, eigendom, grootte en meer., Het kan ook worden gecombineerd met andere tools zoals grep of sed .

find Command syntaxis #

de algemene syntaxis voor het find de opdracht is als volgt:

  • het options attribuut bepaalt de behandeling van de symbolische links, foutopsporingsopties en optimalisatiemethode.
  • hetpath... attribuut definieert de startmap of mappen waar find de bestanden zal doorzoeken.,
  • hetexpression attribuut bestaat uit opties, zoekpatronen en acties gescheiden door operators.

om naar bestanden in een map te zoeken, moet de gebruiker die de opdracht find aanroept, leesrechten op die map hebben.

laten we eens kijken naar het volgende voorbeeld:

bestanden zoeken op naam #

bestanden zoeken op naam is waarschijnlijk het meest voorkomende gebruik van het find Commando., Om een bestand met zijn naam te vinden, gebruik je de optie -name gevolgd door de naam van het bestand waarnaar je zoekt.

bijvoorbeeld, om te zoeken naar een bestand met de naam document.pdf in de /home/linuxize directory, gebruikt u het volgende commando:

Voor het uitvoeren van een case-insensitive zoeken verander de -name optie -iname:

Het bovenstaande commando zal overeenkomen met “Document.pdf”, ” DOCUMENT.pdf” ..etc.,

bestanden zoeken op Extensie #

bestanden zoeken op extensie is hetzelfde als bestanden zoeken op naam. Om bijvoorbeeld alle bestanden te vinden die eindigen op .log.gz in de /var/log/nginx map, typt u:

Het is belangrijk om te vermelden dat u het patroon moet citeren of het sterretje moet verlaten * symbool met Backslash \ zodat het niet wordt geïnterpreteerd door de shell wanneer u het jokerteken gebruikt.,

om alle bestanden te vinden die niet overeenkomen met de regex *.log.gz kunt u de optie -not gebruiken. Om bijvoorbeeld alle bestanden te vinden die niet eindigen op *.log.gz gebruikt u:

bestanden zoeken op Type #

soms moet u zoeken naar specifieke bestandstypen zoals gewone bestanden, mappen of symlinks. In Linux is alles een bestand.,div>: named pipe (FIFO)

  • s: socket
  • bijvoorbeeld, om alle mappen in de huidige map , gebruikt u:

    Het gemeenschappelijk voorbeeld zou zijn om recursief wijzigen van het website-bestand machtigingen voor 644 en de map machtigingen voor 755 gebruik de chmod commando:

    het Vinden van Bestanden op Grootte #

    om Te zoeken naar bestanden op basis van de grootte van het bestand, het doorgeven van de -size parameter samen met de grootte criteria.,9fdb538a6b”>: 512-byte blokken (standaard)

  • c: bytes
  • w: twee-byte woorden
  • k: Kb
  • M: Megabytes
  • G: Gigabyte
  • Het volgende commando zal alle bestanden van exact 1024 bytes binnen de /tmp map:

    De find commando kunt u ook zoeken naar bestanden die groter of kleiner zijn dan de opgegeven grootte.,

    in het volgende voorbeeld zoeken we naar alle bestanden kleiner dan 1MB in de huidige werkmap. Let op het min - symbool voor de grootte waarde:

    Als u wilt zoeken naar bestanden met een grootte groter dan 1MB, dan moet u de plus + symbool:

    u kunt zelfs zoeken naar bestanden binnen een groottebereik., Het volgende commando zal alle bestanden vinden tussen 1 en 2MB:

    bestanden zoeken op wijzigingsdatum #

    de find commando kan ook zoeken naar bestanden op basis van hun laatste wijziging, toegang of verander de tijd.

    hetzelfde als bij het zoeken op Grootte, gebruik de plus en min symbolen voor ” groter dan “of”kleiner dan”.

    stel dat je een paar dagen geleden een van de Dovecot configuratiebestanden hebt gewijzigd, maar je bent vergeten welke., U kunt eenvoudig alle bestanden filteren onder de /etc/dovecot/conf.d map die eindigt met .conf en is gewijzigd in de afgelopen vijf dagen:

    Hier is een ander voorbeeld van het filteren van bestanden op basis van de wijzigingsdatum met behulp van de -daystart optie., Het commando hieronder toont alle bestanden in de /home map die gewijzigd zijn 30 of meer dagen geleden:

    bestanden zoeken met permissies #

    de -perm optie staat u toe om zoeken naar bestanden op basis van de bestandsmachtigingen.,

    bijvoorbeeld, om alle bestanden te vinden met rechten van precies 775 in de /var/www/html map, zou u gebruik maken van:

    u kunt de numerieke modus met min - of slash /.

    wanneer slash / als prefix wordt gebruikt, moet ten minste één categorie (gebruiker, groep of andere) minstens de respectievelijke bits hebben om een bestand te laten overeenkomen.,

    beschouw het volgende voorbeeldcommando:

    het bovenstaande commando zal alle bestanden met leesmachtigingen overeenkomen die ingesteld zijn voor gebruiker, groep of anderen.

    Als min - wordt gebruikt als prefix, dan moeten ten minste de opgegeven bits worden ingesteld om het bestand te laten overeenkomen., Het volgende commando zal zoeken naar bestanden met lees-en schrijfrechten voor de eigenaar en de groep en die leesbaar zijn voor andere gebruikers:

    bestanden zoeken naar eigenaar #

    om bestanden te vinden die eigendom zijn van een bepaalde gebruiker of groep, gebruik je de opties -user en -group.

    bijvoorbeeld, om te zoeken naar alle bestanden en mappen die eigendom zijn van de gebruiker linuxize, zou u het volgende commando uitvoeren:

    Hier is een voorbeeld uit de echte wereld., Stel dat u alle bestanden wilt vinden die eigendom zijn van de gebruiker www-data en de eigendom van de overeenkomende bestanden wilt wijzigen van www-data naar nginx:

    bestanden zoeken en verwijderen #

    om te verwijderen alle overeenkomende bestanden, voeg de -delete optie toe aan het einde van de overeenkomende expressie.

    zorg ervoor dat u deze optie alleen gebruikt als u er zeker van bent dat het resultaat overeenkomt met de bestanden die u wilt verwijderen., Het is altijd een goed idee om de overeenkomende bestanden af te drukken voordat u de -delete optie gebruikt.

    bijvoorbeeld, om alle bestanden die eindigen op .temp uit de /var/log/ te verwijderen, zou u gebruik maken van:

    gebruik de -delete optie met uiterste voorzichtigheid. De opdracht find wordt geëvalueerd als een expressie en als u de optie -delete toevoegt, zal het commando eerst alles onder de opgegeven beginpunten verwijderen.,

    als het gaat om mappen, kan find alleen lege mappen verwijderen, hetzelfde als rmdir .

    conclusie #

    we hebben u laten zien hoe u hetfind commando gebruikt met verschillende opties en criteria.

    Dit artikel zou je een fundamenteel begrip moeten geven van hoe je bestanden op je Linux systemen kunt lokaliseren. U kunt ook de manual pagina van find bezoeken en lezen over alle andere krachtige opties van het find Commando.


    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *