40 Best Examples of Find command in Linux

Het Linux find commando is een krachtig hulpmiddel waarmee systeembeheerders bestanden en mappen kunnen lokaliseren en beheren op basis van een breed scala aan zoekcriteria. Het kan directory ‘ s en bestanden vinden op hun naam, hun type of extensie, grootte, machtigingen, enz.

naast het lokaliseren van bestanden en mappen, maakt het combineren van het find commando met anderen het mogelijk om actie te ondernemen op de resultaten., Het toevoegen van de optie -exec stelt systeembeheerders in staat om externe commando ‘ s uit te voeren en acties uit te voeren zoals kopiëren, verplaatsen, verwijderen of wijzigen van rechten van bestanden die voldoen aan de opgegeven criteria zoals grootte, Naam, enz.

in dit artikel zullen we beginnen met het uitleggen van de Basic Linux find commando ‘ s met voorbeelden. Dit laat je zien hoe je bestanden en mappen kunt vinden. We zullen u dan laten zien hoe u de optie -exec gebruikt om op de bestanden of mappen te reageren op basis van hun grootte, rechten, enz.,

de algemene syntaxis voor het find commando is

find {path} {name -of-file or dir-to-search} {action-to-take}

waar,

in deze tutorial zullen we uitleggen hoe bestanden en mappen gevonden kunnen worden die overeenkomen met opgegeven patronen. We zullen ook zien hoe acties uit te voeren op de bestanden of mappen die het find Commando lokaliseert. De Gids is gebaseerd op Ubuntu, maar is van toepassing op de meeste Linux distributies en versies.

bestanden en mappen zoeken

specifieke bestanden zoeken op naam of extensie

om naar een specifiek bestand te zoeken, voer je het volgende commando uit vanaf de root (/)., Het commando bevat de exacte naam van het bestand dat u zoekt.

find . -name file22.txt

Output

./test/file22.txt./sales/file22.txt

merk op dat de resultaten het pad bevatten. Dit is belangrijk als je niet weet in welke directory het bestand zich bevindt, of wanneer het zich op meer dan één plaats bevindt.

u kunt ook zoeken naar het bestand in een andere map terwijl u zich nog op de huidige locatie bevindt. In dit geval moet u het pad opgeven voor de map waar u wilt zoeken.,

find ./test -name file22.txt

zoeken naar specifieke bestanden in een andere map

In ons geval zullen we zoeken naar alle bestanden die beginnen met het letterbestand in de testmap.

find ./test -name file*

Output

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

zoeken naar bestanden met extensie

om een bestand in Linux met een bepaalde extensie te vinden, voeg het toe aan het commando.,

find . -name *.txt

uitvoer

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

bestanden en mappen zoeken op naam

gebruik het onderstaande commando om te zoeken naar bestanden en mappen die beginnen met de letters qa. In onze computer hebben we de qatree.txt en qa.txt bestanden en een map met de naam qa.,

als we het commando uitvoeren;

find ./ -name "qa*"

geeft het de volgende uitvoer

./test/qatree.pdf./test/qa.txt./home/qa

het commando geeft zowel de bestanden als mappen die overeenkomen met de zoekcriteria. Om alleen bestanden of mappen te vinden, moet je dit opgeven in het commando.

zoek alleen bestanden of mappen

gebruik alleen de schakelaar type f voor bestanden.

bestanden alleen

find ./ -type f -name "qa*"

uitvoer

./test/qatree.pdf./test/qa.txt

mappen alleen

voeg de type d optie toe om alleen mappen te vinden.,

find ./ -type d -name "qa*"

uitvoer

./home/qa

Hoofdletterongevoelige zoekopdracht

alle zoekopdrachten met -name switch zijn hoofdlettergevoelig en geven geen resultaten met hoofdletters. Om alle gevallen te krijgen, gebruik je de -iname optie.

find ./ -iname "qa*"

uitvoer

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

zoeken naar een bestand uit meerdere mappen

om de bestanden in verschillende mappen te vinden, voegt u hun paden toe in het commando., In ons geval zullen we de test en numeric mappen controleren.

find ./test ./numeric -name file22.txt -type f

Output

./test/file22.txt/root/numeric/file22.txt

meerdere bestanden zoeken met verschillende extensies uit alle mappen

u kunt het commando zoeken gebruiken om meerdere bestanden te vinden die de verschillende extensies delen, zoals *.doc, *.txt *.pdf, enz. Dit kan afzonderlijk worden gedaan, één extensie per keer, of met slechts één commando dat alle gewenste extensies bevat.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

uitvoer

zoek bestanden die bepaalde tekst bevatten

soms wilt u een bestand openen dat bepaalde tekst bevat, maar kunt u de bestandsnaam of locatie niet herinneren. Met dit commando kunt u alle bestanden vinden die uw doeltekst bevatten.

om te zoeken naar alle bestanden die het woord hyperconvergence bevatten, gebruik;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

uitvoer

/root/numeric/hci/root/HCIP

De optie –i schakelt het commando in om gevallen te negeren en zal de tekst vinden, al dan niet met hoofdletters , zoals hyperconvergence, Hyperconvergence, enz.,

om naar de bestanden in een specifieke map te zoeken, voeg het gewoon toe aan het commando

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

uitvoer

./numeric/hci

bestanden en mappen zoeken op basis van grootte

u kunt alle bestanden of mappen vinden die kleiner, Gelijk of groter zijn dan een bepaalde grootte, binnen een bepaald bereik of leeg zijn. Gebruik het juiste formaat, afhankelijk van het type bestanden of mappen waarnaar u op zoek bent.,nd-bestanden van een bepaalde grootte – gelijk aan 30 MB

om Te Zoeken, vinden alle 30MB bestanden

find / -size 30M

het Vinden van bestanden die groter zijn dan een bepaalde grootte

find -size +2M

Output:

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Vind bestanden kleiner dan 10 mb in de huidige directory

find . -type f -size -10M

bestanden Zoeken met maten tussen de 100-200 MB

Bij het zoeken naar bestanden binnen een bepaald bereik, zoals tussen de 100 en 200 MB

find / -size +100M -size -200M

voor directories groter dan 20kb

find / -type d -size +20k

Het vinden van lege bestanden en mappen.,

Bestanden

find ./ -type f -size 0

of

find ./ -type f –empty

Directories

find ./ -type d –empty

bestanden Zoeken op basis van leeftijd of wijziging tijd

het Vinden van bestanden die ouder zijn dan n dagen

find /path/ -type f -name '*.txt' -mtime +8

De -mtime +8 zoeken txt bestanden die ouder zijn dan 8 dagen.,

op wijzigingsdatum

Dit zal zoeken naar bestanden die zijn gewijzigd in de laatste 17 uur

find . -mtime -17 -type f 

zoekt naar mappen die zijn gewijzigd in de laatste 10 dagen

find . -mtime -10 -type d 

bestanden zoeken op basis van toegang of wijziging

bestanden zoeken op basis van datum of tijd waartoe toegang is verkregen. Hiermee kunt u bestanden zien die wel of niet binnen een bepaalde periode zijn geopend.

om bestanden te zien die in de laatste 10 dagen niet zijn benaderd in de persoonlijke map.,

find /home -atime +10

bestanden exact 10 dagen geleden geopend

find /home -atime 10

geopend in de laatste 10 dagen

find /home -atime -10

zoek bestanden gewijzigd in de laatste n dagen

u kunt ook zoeken naar de bestanden in de /home map gewijzigd in de laatste 10 dagen met behulp van het commando;

find /home -mtime -10 

zoek bestanden gewijzigd binnen een specifieke periode.

bijvoorbeeld, alle bestanden gewijzigd tussen 6 en 15 dagen geleden in de home directory.,

find /home -type f -mtime +6 -mtime -15

bestanden en mappen die in de laatste 10 minuten zijn geopend

om de bestanden te vinden die in de laatste 10 minuten zijn geopend, gebruikt u de optie-amin.

find . -amin -10 -type f

Output:

./.bash_history./.profileroot@ubuntu1804:~#

Mappen toegankelijk is binnen de laatste 10 minuten

find . -amin -10 -type d

Zoeken naar bestanden die overeenkomen met specifieke machtigingen

Syntax

$ find -perm mode

Waar modus is de toestemming die is numeriek zoals 644, 655, 700, 777, enz., of letters, zoals u=x, a=r+x, etc.,

u kunt de modus op de volgende drie manieren opgeven.

  1. zonder voorvoegsel wanneer u bestanden wilt vinden met de exacte opgegeven rechten.
  2. met “- ” voor bestanden met ten minste de opgegeven rechten. Dit retourneert bestanden met de opgegeven en extra hogere machtigingen.
  3. het gebruik van”/ ” vereist het specificeren van de eigenaar of groep met de toestemming voor het bestand.,

bestanden zoeken met toestemming 777

find -perm 777

uitvoer

./file1

bestanden zoeken met ten minste766
find-perm -766

uitvoer

./file2./file1

het commando zoekt naar alle bestanden waarin de

  • de eigenaar van het bestand de rechten voor lezen/schrijven/uitvoeren heeft.
  • groep heeft lees / schrijf rechten
  • anderen hebben lees / schrijf rechten

als zodanig geeft het twee bestanden terug die aan dit criterium voldoen – file1 en file2., De bestanden hoeven niet de exacte 766 rechten te hebben en kunnen zo lang extra rechten hebben, maar moeten minstens de opgegeven rechten hebben.

zoek bestanden die beschrijfbaar zijn voor de eigenaar

We zullen nu de “/” gebruiken om te zoeken naar bestanden die beschrijfbaar zijn voor de eigenaar, de groep of anderen.

find -perm /222../file2./file3./file1

het bovenstaande zoekt naar bestanden die beschrijfbaar zijn voor de eigenaar of de groep.
Dit geeft bestanden terug die beschrijfbaar zijn voor een van beide, maar niet noodzakelijk voor beide. Om bestanden te zien, waar beide beschrijfbare rechten hebben, gebruik je het-prefix.,

./file2./file1

Vind bestanden die eigendom zijn van een gebruiker

het Vinden van alle bestanden die eigendom zijn van Jack

find /home -user jack

Output:

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

het Vinden van specifieke bestanden, eigendom van een gebruiker

Vindt u alle tekst bestanden die eigendom zijn van Jack

find /home -user jack -iname "*.txt"

Output:

/home/jack/docs/file32.txt

Zoeken en een lijst van bestanden en mappen samen met hun permissies

find -name "*.conf" | ls -l

Output:

Zoeken en reageren op de resultaten

In deze sectie, we kijken hoe u kunt handelen op de bestanden die overeenkomen met het patroon dat is opgegeven in de opdracht.,

bestanden zoeken en machtigingen wijzigen

machtigingen van bepaalde bestandstypen zoeken en wijzigen. In ons geval zullen we werken met PHP-bestanden met verschillende machtigingen zoals hieronder weergegeven.,

We zullen nu kijken voor alle PHP bestanden (boven) en het vervangen van hun machtigingen met 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

Het commando ziet er voor de PHP-bestanden in de ver map en vervolgens stelt hun toestemming tot 755 (rwxr-xr-x)

Resultaten

Zoeken en wijzigen van bestanden en directory permissies

het Vinden van bestanden met 644 rechten en veranderen ze 655 machtigingen

find . -type f -perm 644 -exec chmod 655 {} ;

Je kunt ook kijken voor mappen met 644 rechten en vervang dit met 755.,

find . -type d -perm 644

Output:

./docs 

De map docs heeft 644 machtigingen

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

Om het 755, wij uitvoeren

find . -type d -perm 644 -exec chmod 755 {} ;

Nu we te controleren, om te zien wat er precies 755

find . -type d -perm 755

Output:
.
./docs

van bovenaf kunnen we zien dat de root en docs directory ‘ s de 755 rechten hebben.,

Ls –la commando geeft de volgende details

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

bestanden of mappen zoeken en kopiëren

een specifiek bestand zoeken en kopiëren naar een map

het onderstaande commando zal het file22.txt bestand vinden en kopiëren naar de ~/tmp/images map.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

Zoek en kopieer een bestandstype naar een map

om bestanden te vinden zoals afbeeldingen met jpg extensie in de huidige map en kopieer ze naar een andere locatie zoals een map met afbeeldingen, Gebruik;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

Dit zal alle bestanden vinden en kopiëren jpg-bestanden naar de ~/tmp/images map.

zoeken en kopiëren van een bestand naar vele mappen

zoeken en kopiëren van een enkel bestand naar meerdere mappen.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Dit zal het bestand HCI-bestand vinden en kopiëren naar de drie mappen van /tmp/dir1/ /tmp/dir2/ en $HOME/3/

Zoek en verplaats bestanden naar een andere map

om een bekend bestand van een map naar een andere te verplaatsen., Het verplaatsen van de universal.php bestand;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

bestanden met een bepaalde extensie zoeken en verplaatsen naar een andere map

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

bepaalde bestanden zoeken en verplaatsen naar een specifieke andere map

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

het commando zoekt naar alle bestanden met namen die beginnen met uni en een extensie hebben. Het verplaatst ze vervolgens naar de map /unifiles/

zoeken en verplaatsen van bestanden op basis van leeftijd

zoeken en verplaatsen van bestanden ouder dan opgegeven dagen naar een andere locatie, zoals het archief.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

Dit zoekt naar pdf-bestanden ouder dan 20 dagen en verplaatst ze naar de backup1-map.,bestanden en mappen

De syntax voor het vinden en verwijderen van bestanden of mappen in de huidige map

find . -type f -name "file to delete" -exec rm -f {} ; om bestanden te verwijderen of

find . -type d -name "dir-to-delete" -exec rm -rf {} ; om te verwijderen mappen alleen

het Vinden en verwijderen van bepaalde bestanden

Voor het vinden en verwijderen van bestanden beginnen met til, gebruik;

find . -type f -name "til*" -exec rm {} ; 

Voor het vinden en verwijderen van mappen die beginnen met til

find . -type d -name "til*" -exec rm {} ;

Verwijderen van bestanden en directories

find . -name "til*" -exec rm -rf {} ; 

Dit zal het verwijderen van bestanden en mappen die beginnen met de letters til.,

Delete by extension

hieronder staat hoe u alle txt bestanden in de huidige map kunt vinden en verwijderen. Vervang detxt met een andere extensie zoalsbak,pdf of een andere die u wilt verwijderen.

find . -type f -name "*.txt" -exec rm -f {} ;

Als u wilt dat het systeem U vraagt om te bevestigen voordat u elk bestand verwijdert, voeg dan de-i optie toe zoals hieronder.,

find . -type f -name "*.txt" -exec rm -i {} ;

uitvoer

standaard zal de -rm de mappen niet verwijderen en MOET u de optie –r gebruiken om een recursieve verwijdering te garanderen. Dit zorgt voor het verwijderen van lege mappen en die met bestanden. De optie -f forceert de verwijdering en wordt gebruikt voor zowel de bestanden als de mappen.

bestanden ouder dan n dagen zoeken en verwijderen

back-upbestanden ouder dan 20 dagen uit de huidige map zoeken en verwijderen.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

Dit zal alle .bak bestanden ouder dan 20 dagen verwijderen.

zoek en verwijder alleen mappen

om een map genaamd dir22

find . -type d -name dir22 -exec rm -rf {} ;

te verwijderen zorg ervoor dat u overeenkomt met de naam van de map of gebruik de optie -iname.

find . -type d -iname Dir22 -exec rm -rf {} ;

verwijdert zowelDir22 endir22

om te bevestigen voor verwijdering, gebruik de-i optie.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

uitvoer
rm: map verwijderen ‘.Dir22’?, n
rm: map verwijderen’.dir22′? y

in ons geval hebben we n Voor map Dir22 die niet zal worden verwijderd en y voor de dir22 die nu zal worden verwijderd.

lege bestanden zoeken en verwijderen

u kunt elk van de volgende opdrachten gebruiken om lege bestanden te vinden en automatisch te verwijderen.

find ./ -type f -size 0 -exec rm -f {} ;

of
zoeken ./ – type f-size 0 / xargs rm-f
of
find .,/- type f –size 0-delete

lege mappen zoeken en verwijderen

om lege mappen te verwijderen gebruiken we de optie d.

find ./ -type d -empty -exec rmdir {} ;

een ander alternatief is verwijderen in plaats van verwijderen.

find ./ -type d -empty -delete

houd er rekening mee dat het verwijderen van systeem of kritieke bestanden van uw computer het besturingssysteem of toepassingen kan beschadigen of kan leiden tot verlies van uw belangrijke gegevens.

om onbedoelde verwijderingen te voorkomen, is het het beste om een niet-root gebruikersaccount te gebruiken., Zorg er ook voor dat u de juiste bestanden verwijdert die niet nuttig zijn en dat u een back-up hebt van al uw gegevensbestanden voor het geval dat.

wat volgt?

ga je gang en probeer de bovenstaande Linux find commando ‘ s in je lab of niet productie omgeving. Kijk of je wat kunt gebruiken om het opschonen van het bestandssysteem te automatiseren met Crontab. En, om Linux onder de knie te krijgen, bekijk deze online cursus.

Geef een reactie

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

Spring naar toolbar