find - et værktøj til at søge efter filer efter navn og andre egenskaber, brugt i UNIX - lignende operativsystemer . Kan søge i en eller flere mapper ved hjælp af kriterier specificeret af brugeren . findReturnerer alle filer i arbejdsmappen som standard . Desuden findgiver det brugeren mulighed for at anvende visse handlinger på alle fundne filer. Regulære udtryk understøttes også . For at søge efter filer efter indhold skal du bruge grep -værktøjet .
Find alle filer i de aktuelle og underordnede mapper, der starter med min .
Bemærk venligst: med hensyn til unix er alt, inklusive mapper, en fil .
finde. -navn 'min*'For kun at søge efter filnavne skal du bruge en ekstra mulighed-type f
finde. -navn 'min*' -type fFind alle filer i rod- og underbibliotekerne, der starter med min .
At søge i rodmappen svarer til at søge på hele computeren.
find / -navn 'min*'Søgning efter filer i mapper /usr/local/manog/opt/local/man
find /usr/local/man /opt/local/man -navn 'min*'Find alle filer i det aktuelle og underordnede bibliotek, der starter med my eller qu .
Bemærk, at som standard er alle argumenter forbundet ved hjælp af den logiske og (indstilling -a, fra engelsk og ). Hvis du har brug for at kombinere flere argumenter med en logisk eller - brug muligheden -o, fra engelsk. eller .
finde. \( -navn "min*" -o -navn "qu*" \) -printFind alle filer i de aktuelle og underordnede mapper, hvis udvidelse matcher de angivne.
Denne søgning udføres ved hjælp af regulære udtryk .
finde. -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)"Det foregående eksempel kan også skrives ved hjælp af regulære udtryk
finde. -type f -regex "\(min\|qu\).*"Indstillingen -exec udfører den kommando, der følger efter den, og erstatter {}den med den aktuelle fil. Find alle mapper under den angivne mappe og skift deres tilladelser med chmod kommandoen :
find /sti -type d -exec chmod 0755 {} \;Indstillingen -exec er omkring 10 gange langsommere end at omdirigere output via xargs , så det anbefales at skrive denne kode sådan her:
find /sti -type d | xargs chmod 0755Biblioteker med navne, der indeholder mellemrum, vil dog ikke blive behandlet med xargs-omdirigeringsmetoden, så du bør bruge den første mulighed, polstret:
find /sti -type d -exec chmod 0755 "{}" \;Eller brug muligheden -print0og -0lad dig behandle argumenter, der indeholder mellemrum og anførselstegn:
find /sti -type d -print0 | xargs -0 chmod 0755Søg efter alle php.ini-filer i den aktuelle mappe og erstat teksten i hver fundne fil ved hjælp af sed -kommandoen .
finde. -name 'php.ini' -exec sed -i 's/log_errors = Fra/log_errors = Til/g' "{}" \;Kompleks søgning i flere typer filer og teksterstatninger i hver af dem, fra den aktuelle mappe og nedenfor.
finde. -regex ".*\.\(php\|js\|css\)" -exec sed -i 's/\/bitrix\/templates\//\/local\/templates\//g' "{} " \;Find og skriv filer i hele filsystemet, der er blevet ændret i det sidste minut:
find / -mmin -1 -printFind og liste filer i hele filsystemet, der er blevet ændret for mere end 31 dage siden:
find / -mtime +31 -printFind og liste filer i hele filsystemet, hvis størrelse er større end 100 MB:
find / -størrelse +100M -printI dette eksempel udføres søgningen på filer, der ejes af en bruger ved navn ilya
finde. -bruger ilyaSøgedybden er i forhold til den mappe, der er angivet i kommandoargumentet.
Starter at søge i mappen /var/www, men ikke dybere /var/www/*/*/*/*.
find /var/www -maxdepth 4 -navn 'restore.php'Søger efter filer i de angivne mapper.
find /var/spool/postfix/ { deferred,active,maildrop,incoming } / -type fSøger efter php-filer i den aktuelle mappe, undtagen index.php
finde. -navn "*.php" ! -navn "index.php"Sletter alle filer restore.phpfra den aktuelle mappe op til 4 indlejringsniveauer i forhold til kommandolinjeargumentet
Starter at søge i mappe /var/www, men ikke dybere /var/www/*/*/*/*og sletter alle restore.phpfundne filer.
find /var/www -maxdepth 4 -navn 'restore.php' -exec rm -r {} \;Hvis der opstår en fejl under søgningen (f.eks. er der ingen læseadgang fra biblioteket), bliver udgangen af kommandoen mindre informativ. Omdiriger STDERR-output til /dev/null .
find / -navn 'secret.keys' -print 2 >/dev/nullDu kan også bruge en af følgende muligheder:
find / -navn "navn på fil, der skal søges" |& grep -v 'Tilladelse nægtet' find / -name "navnet på den fil, du leder efter" |& grep -v 'Permission denied'
Unix-kommandoer | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
MS-DOS- og Windows -kommandoer | Almindelige|
---|---|
| |
Se også: Liste over DOS-kommandoer Liste over Microsoft-operativsystemkommandoer |