Linux Commands for Beginners 16 - Output Redirection
Inhoudsopgave:
- Linux
find
Command Syntax - Bestanden zoeken op naam
- Bestanden zoeken op extensie
- Zoek bestanden op type
- Bestanden zoeken op grootte
- Bestanden zoeken op wijzigingsdatum
- Bestanden zoeken op machtigingen
- Bestanden zoeken op eigenaar
- Bestanden zoeken en verwijderen
- Conclusie
De opdracht
find
is een van de krachtigste tools in het arsenaal van Linux-systeembeheerders. Het zoekt naar bestanden en mappen in een maphiërarchie op basis van een door de gebruiker opgegeven expressie en kan door de gebruiker opgegeven actie uitvoeren op elk gekoppeld bestand.
U kunt de opdracht
find
gebruiken om naar bestanden en mappen te zoeken op basis van hun machtigingen, type, datum, eigendom, grootte en meer. Het kan ook worden gebruikt in combinatie met andere hulpmiddelen zoals
grep
of
sed
.
Linux
find
Command Syntax
De algemene syntaxis voor de opdracht
find
is als volgt:
find
- Het attribuut
options
regelt de behandeling van de symbolische koppelingen, foutopsporingsopties en optimalisatiemethodepath…
kenmerkpath…
definieert de startmap of mappen waarin find de bestanden doorzoekt. Hetexpression
bestaat uit opties, zoekpatronen en acties gescheiden door operatoren.
Om naar bestanden in een map te zoeken, moet de gebruiker die de opdracht
find
leesrechten op die map hebben.
Laten we het volgende voorbeeld bekijken:
find -L /var/www -name "*.js"
- De optie
-L
(opties) vertelt de opdrachtfind
om symbolische koppelingen te volgen./var/www
(pad…) geeft de map aan waarnaar wordt gezocht. De (expressie)-name "*.js
verteltfind
om bestanden te zoeken die eindigen op.js
(JavaScript-bestanden).
Bestanden zoeken op naam
Bestanden zoeken op naam is waarschijnlijk het meest voorkomende gebruik van de opdracht
find
. Als u een bestand op naam wilt gebruiken, volgde de optie
-name
de naam van het bestand dat u zoekt.
Als u bijvoorbeeld naar een bestand met de naam
document.pdf
in de map
/home/linuxize
, gebruikt u de volgende opdracht:
find /home/linuxize -type f -name document.pdf
Als u een hoofdletterongevoelige zoekopdracht wilt uitvoeren, wijzigt u de optie
-name
met
-iname
:
find /home/linuxize -type f -iname document.pdf
De bovenstaande opdracht komt overeen met "Document.pdf", "DOCUMENT.pdf"..etc.
Bestanden zoeken op extensie
Zoeken naar bestanden op extensie is hetzelfde als zoeken naar bestanden op naam. Als u bijvoorbeeld alle bestanden wilt vinden die eindigen op
.log.gz
in de map
/var/log/nginx
, kunt u het volgende gebruiken:
find /var/log/nginx -type f -name '*.log.gz'
Het is belangrijk om te vermelden dat wanneer u het jokerteken gebruikt, u het patroon moet citeren of moet ontsnappen aan het asterisk
*
-symbool met backslash
\
zodat het niet wordt geïnterpreteerd door de shell.
Om alle bestanden te vinden die niet overeenkomen met de regex
*.log.gz
, kunt u de optie
*.log.gz
gebruiken. Als u bijvoorbeeld alle bestanden wilt vinden die niet eindigen op
*.log.gz
u:
find /var/log/nginx -type f -not -name '*.log.gz'
Zoek bestanden op type
Soms moet u mogelijk naar specifieke bestandstypen zoeken, zoals normale bestanden, mappen of symlinks. In Linux is alles een bestand.
Gebruik de optie
-type
en een van de volgende descriptoren om het bestandstype op te geven om bestanden te zoeken op basis van hun type:
-
f
: een normaal bestandd
: directoryl
: symbolische linkc
: karakterapparatenb
: blokkeerapparatenp
: named pipe (FIFO)s
: socket
Als u bijvoorbeeld alle mappen in de huidige werkmap wilt vinden, gebruikt u:
find. -type d
Het gebruikelijke voorbeeld zou zijn om de websitebestanden van de website recursief te wijzigen in
644
en mapmachtigingen in
755
met behulp van de opdracht
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Bestanden zoeken op grootte
Om bestanden te vinden op basis van de bestandsgrootte, geeft u de parameter
-size
door met de criteria voor de grootte. U kunt de volgende achtervoegsels gebruiken om de bestandsgrootte op te geven:
-
b
: blokken van 512 bytes (standaard)c
: bytesw
: woorden van twee bytesk
: kilobytesM
: megabytesG
: gigabytes
De volgende opdracht vindt alle bestanden van exact
1024
bytes in de map
/tmp
:
find /tmp -type f -size 1024c
Met
find
opdracht Zoeken kunt u ook zoeken naar bestanden die groter of kleiner zijn dan een opgegeven grootte.
In het volgende voorbeeld zoeken we naar alle bestanden van minder dan
1MB
in de huidige werkmap. Let op het minteken
-
symbool voor de maatwaarde:
find. -type f -size -1M
find. -type f -size +1M
U kunt zelfs zoeken naar bestanden binnen een groottebereik. De volgende opdracht vindt alle bestanden tussen
1
en
2MB
:
find. -type f -size +1M -size 21M
Bestanden zoeken op wijzigingsdatum
Met
find
opdracht Zoeken kunt u ook naar bestanden zoeken op basis van hun laatste wijziging, toegang of wijzigingsduur.
Hetzelfde als bij het zoeken op grootte, gebruik de plus- en mintekens voor "groter dan" of "kleiner dan".
Laten we zeggen dat u enkele dagen geleden een van de configuratiebestanden voor de duiventil hebt gewijzigd, maar dat u bent vergeten welke. Je kunt eenvoudig alle bestanden filteren in de map
/etc/dovecot/conf.d
die eindigen op
.conf
en in de afgelopen vijf dagen zijn gewijzigd met:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Hier is nog een voorbeeld van het filteren van bestanden op basis van de wijzigingsdatum met de optie
-daystart
. Met de onderstaande opdracht worden alle bestanden in de map
/home
die
30
dagen of langer geleden zijn gewijzigd:
find /home -mtime +30 -daystart
Bestanden zoeken op machtigingen
Met de optie
-perm
kunt u naar bestanden zoeken op basis van de bestandsmachtigingen.
Als u bijvoorbeeld alle bestanden met rechten van exact
775
in de map
/var/www/html
wilt vinden, gebruikt u:
find /var/www/html -perm 644
U kunt de numerieke modus voorafgaan door min
-
of slash
/
.
Als slash
/
wordt gebruikt als het voorvoegsel, moet ten minste één categorie (gebruiker, groep of andere) ten minste de respectieve bits hebben ingesteld voor een overeenkomend bestand.
Overweeg de volgende voorbeeldopdracht:
find. -perm /444
De bovenstaande opdracht zal overeenkomen met alle bestanden met leesrechten ingesteld voor gebruiker, groep of anderen.
Als min
-
als het voorvoegsel wordt gebruikt, moeten het opgegeven bestand minimaal overeenkomen met de opgegeven bits. De volgende opdracht zoekt naar bestanden die lees- en schrijfrechten hebben voor de eigenaar en groep en leesbaar zijn door andere gebruikers:
Bestanden zoeken op eigenaar
Gebruik de opties
-user
en
-group
om bestanden te vinden die eigendom zijn van een bepaalde gebruiker of groep.
Als u bijvoorbeeld wilt zoeken naar alle bestanden en mappen die eigendom zijn van de gebruiker
linuxize
, zou u het volgende uitvoeren:
find / -user linuxize
Hier is een real-world voorbeeld. Stel dat u alle bestanden wilt vinden die eigendom zijn van de gebruiker
www-data
en het eigendom van de overeenkomende bestanden wilt wijzigen van
www-data
naar
nginx
:
find / -user www-data -type f -exec chown nginx {} ;
Bestanden zoeken en verwijderen
Om alle overeenkomende bestanden te verwijderen, voegt u de optie
-delete
aan het einde van de overeenkomstuitdrukking.
Zorg ervoor dat u deze optie alleen gebruikt als u zeker weet 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 optie
-delete
.
Als u bijvoorbeeld alle bestanden die eindigen op
.temp
uit het
/var/log/
wilt verwijderen, gebruikt u:
find /var/log/ -name `*.temp` -delete
Gebruik de optie
-delete
met uiterste voorzichtigheid. De opdrachtregel wordt gevonden als een uitdrukking en als u eerst de optie
-delete
, verwijdert de opdracht alles onder de opgegeven startpunten.
Als het gaat om mappen, kan Find alleen lege mappen verwijderen die hetzelfde zijn als
rmdir
.
Conclusie
We hebben u laten zien hoe u de opdracht Zoeken kunt gebruiken met verschillende opties en criteria.
Dit artikel zou u een fundamenteel inzicht moeten geven in hoe u bestanden op uw Linux-systemen kunt lokaliseren. U kunt ook de vindman-pagina bezoeken en meer lezen over alle andere krachtige opties van de opdracht zoeken.
zoek terminalHoe ze naast elkaar te vergelijken van twee pdf-bestanden met behulp van diffpdf
Meer informatie over het maken van een vergelijking van twee PDF-bestanden met DiffPDF.
Hoe ram in Windows vrij te maken met behulp van de opdrachtregel
Ooit al wat RAM-geheugen in Windows willen vrijmaken met alleen een opdrachtregel? Hier is hoe je dat kunt doen, met een leuke kleine app.
Hoe bestanden en mappen te verwijderen met behulp van de linux-opdrachtregel
In deze zelfstudie laten we u zien hoe u de opdracht rm kunt gebruiken om bestanden en mappen te verwijderen door middel van voorbeelden en uitleg van de meest voorkomende rm-opties.