Find
Version från den 17 oktober 2023 kl. 12.07 av Admin (diskussion | bidrag)
FIND Handbok för allmänna kommandon FIND(1)
NAMN
find - sök efter filer i en kataloghierarki
SYNOPSIS
hitta [-H] [-L] [-P] [-D debugopts] [-Olevel] [startpunkt...]
[uttryck]
BESKRIVNING
Denna manualsida dokumenterar GNU-versionen av find . GNU hitta
söker i katalogträdet som är rotat vid varje given startpunkt
genom att utvärdera det givna uttrycket från vänster till höger, enligt
till företrädesreglerna (se avsnitt OPERATÖRER), tills den
resultatet är känt (vänster sida är falsk för och operationer,
sant för eller ), vid vilken punkt sökningen går vidare till nästa filnamn.
Om ingen startpunkt anges, `.' är antaget.
Om du använder hitta i en miljö där säkerheten är
viktigt (till exempel om du använder det för att söka i kataloger
som är skrivbara av andra användare), bör du läsa avsnittet `Säkerhet
Övervägandens kapitel i findutils-dokumentationen, som är
kallas Finding Files och kommer med findutils. Det dokumentet
innehåller också mycket mer detaljer och diskussion än denna manual
sida, så du kanske tycker att den är en mer användbar informationskälla.
ALTERNATIV
Alternativen -H , -L och -P styr behandlingen av symboliska
länkar. Kommandoradsargument efter dessa anses vara
namn på filer eller kataloger som ska undersökas, upp till den första
argument som börjar med `-', eller argumentet `(' eller `!'. Det
argument och alla följande argument anses vara
uttryck som beskriver vad som ska sökas efter. Om inga stigar
ges, används den aktuella katalogen. Om inget uttryck ärgivet , används
uttrycket -print (men du borde förmodligen
överväg att använda -print0 istället, ändå).
Den här manualsidan talar om `alternativ' i uttrycket
lista. Dessa alternativ styr beteendet för hitta men är
anges omedelbart efter det sista sökvägsnamnet. De fem "riktiga"
alternativen -H , -L , -P , -D och -O måste visas före den första sökvägen
namn, om alls. Ett dubbelstreck -- skulle teoretiskt kunna användas till
signalera att eventuella kvarvarande argument inte är alternativ, utan detta
fungerar inte riktigt på grund av hur hitta bestämmer slutet på
följande vägargument: den gör det genom att läsa tills en
uttrycksargument kommer (som också börjar med en `-'). Nu,
om ett sökvägsargument skulle börja med ett "-", så skulle find behandla
det som uttrycksargument istället. Således för att säkerställa att alla
startpunkter tas som sådana, och särskilt för att förhindra det
jokerteckenmönster utökade av det anropande skalet är det inte
felaktigt behandlas som uttrycksargument är det i allmänhet säkrare
för att prefixa jokertecken eller tvivelaktiga sökvägsnamn med antingen `./' eller till
använd absoluta sökvägsnamn som börjar med '/'. Alternativt är det
i allmänhet säker men icke-portabel att använda GNU-alternativet
-filer0-från för att passera godtyckliga startpunkter för att hitta .
-P Följ aldrig symboliska länkar. Detta är standard
beteende. När hitta undersöker eller skriver ut information om
filer, och filen är en symbolisk länk, informationen
som används ska hämtas från det symboliskas egenskaper
länken själv.
-L Följ symboliska länkar. När hitta undersöker eller utskrifter information om filer ska den information som används vara
hämtat från egenskaperna för filen som länken till poäng, inte från själva länken (såvida den inte är trasig
symbolisk länk eller hitta kan inte granska filen till som länken pekar på). Användning av detta alternativ innebär
- noleaf . Om du senare använder alternativet -P , kommer -noleaf att göra det fortfarande vara i kraft.
Om -L är i kraft och hitta upptäcker
en symbolisk länk till en underkatalog under dess sökning, den
underkatalog som pekas på av den symboliska länken kommer att vara
letade.
När alternativet -L är aktivt kommer predikatet -type att göra det
alltid matcha mot den typ av fil som en symbolisk
länken pekar på snarare än själva länken (om inte
symbolisk länk är bruten). Handlingar som kan orsaka symboliska
länkar som bryts medan find körs (för exempel -delete ) kan ge upphov till förvirrande beteende.
Att använda -L gör att -lname och -ilname predikaten alltid att returnera falskt.
-H Följ inte symboliska länkar, förutom när du bearbetar
kommandoradsargument. När hitta undersöker eller utskrifter
information om filer ska den information som används vara
hämtat från egenskaperna hos själva den symboliska länken.
Det enda undantaget från detta beteende är när en fil
som anges på kommandoraden är en symbolisk länk, och
länk kan lösas. För den situationen, informationen
som används är hämtat från vad länken än pekar på (det vill säga,
länken följs). Informationen om länken
sig själv används som en reserv om filen pekas på av
symbolisk länk kan inte undersökas. Om -H är i kraft och
en av sökvägarna som anges på kommandoraden är a
symbolisk länk till en katalog, innehållet i den
katalogen kommer att undersökas (men naturligtvis -maxdepth 0
skulle förhindra detta).
Om mer än en av -H , -L och -P anges, åsidosätter var och en
de andra; den sista som visas på kommandoraden tar
effekt. Eftersom det är standard, bör alternativet -P vara
anses vara i kraft om inte antingen -H eller -L anges.
GNU find ofta statistikfiler under bearbetningen av kommandoraden innan någon sökning har börjat. Dessa
alternativen påverkar också hur dessa argument behandlas. Specifikt finns det ett antal tester som jämför filer
listad på kommandoraden mot en fil vi är för närvarande med tanke på. I varje fall, filen som anges på kommandot
linje kommer att ha undersökts och några av dess egenskaper kommer att ha blivit räddad.
Om den namngivna filen i själva verket är en symbolisk länk, och
alternativet -P är i kraft (eller om varken -H eller -L var det
specificeras), kommer den information som används för jämförelsen att tas
från egenskaperna hos den symboliska länken. Annars blir det
hämtat från egenskaperna för filen som länken pekar på. Om
find kan inte följa länken (till exempel för att den har
otillräckliga privilegier eller länken pekar på en fil som inte finns)
egenskaperna för själva länken kommer att användas.
När alternativen -H eller -L är aktiva, kan alla symboliska länkar
listas som argumentet för -newer kommer att avreferens, och
tidsstämpel kommer att tas från filen som den symboliska länken till
poäng. Samma hänsyn gäller för -newerXY , -anewer och
-cnewer
Alternativet -follow har en liknande effekt som -L , även om det krävs
effekt vid den punkt där den visas (det vill säga om -L inte används
men -follow är alla symboliska länkar som visas efter -follow på
kommandoraden kommer att avhänvisas, och de före det inte).
-D felsöker
Skriv ut diagnostisk information; detta kan vara till hjälp
diagnostisera problem med varför hitta inte gör vad du
vilja. Listan över felsökningsalternativ ska vara komma
separerat. Kompatibiliteten för felsökningsalternativen är inte
garanteras mellan releaser av findutils. För en komplett
lista över giltiga felsökningsalternativ, se utdata från find
-D help . Giltiga felsökningsalternativ inkluderar
exec Visa diagnostisk information relaterad till -exec,
-execdir, -ok och -okdir
opt Skriver ut diagnostisk information relaterad till optimering av uttrycksträdet; se -O
alternativ.
rates Skriver ut en sammanfattning som anger hur ofta varje
predikat lyckades eller misslyckades.
search Navigera utförligt i katalogträdet.
stat Skriv ut meddelanden som filer undersöks med stat och lstat -systemanropen. Sökprogrammet försöker
minimera sådana samtal.
tree Visa uttrycksträdet i dess original och optimerad form.
all Aktivera alla andra felsökningsalternativ (men help ).
help Förklara felsökningsalternativen.
-Olevel
Möjliggör frågeoptimering. Sökprogrammet ordnar om
tester för att påskynda exekveringen samtidigt som helheten bevaras
effekt; det vill säga predikat med biverkningar är det inte
omordnade i förhållande till varandra. Optimeringarna
utförda på varje optimeringsnivå är som följer.
0 Motsvarar optimeringsnivå 1.
1 Detta är standardoptimeringsnivån och motsvarar det traditionella beteendet.
Uttrycken ordnas om så att endast tester baseras på namnen på filer (till exempel -name och
-regex ) utförs först.
2 Alla -type- eller -xtype- tester utförs efter någon tester endast baserat på filnamnen, men tidigare
alla tester som kräver information från inoden. På många moderna versioner av Unix finns filtyper
returneras av readdir() och så är dessa predikat snabbare att utvärdera än predikat som behöver
ange filen först. Om du använder -fstype FOO predikatet och anger ett filsystem typ FOO som
är inte känd (det vill säga finns i `/etc/mtab') på
tidfyndet börjar, det predikatet är ekvivalent
till -falsk .
3 På denna optimeringsnivå är den fulla kostnadsbaserad
frågeoptimeraren är aktiverad. Provordningen är
modifierad så att billiga (dvs snabba) tester är
utförs först och dyrare är
utförs senare vid behov. Inom varje kostnad
band, predikat utvärderas tidigare eller senare
beroende på om de sannolikt kommer att lyckas eller
inte. För -o , predikat som sannolikt gör det
lyckas utvärderas tidigare, och för -a ,
predikat som sannolikt kommer att misslyckas utvärderas
tidigare.
Den kostnadsbaserade optimeraren har en fast uppfattning om hur troligt det är
varje givet test ska lyckas. I vissa fall
sannolikhet tar hänsyn till den specifika karaktären av
test (till exempel, -typ f antas vara mer sannolikt
lyckas än -typ c ). Den kostnadsbaserade optimeraren är
för närvarande utvärderas. Om det inte gör det faktiskt
förbättra prestandan för find kommer den att tas bort igen.
Omvänt, optimeringar som visar sig vara tillförlitliga,
robust och effektiv kan aktiveras vid lägre optimering
nivåer över tid. Men standardbeteendet (dvs
optimeringsnivå 1) kommer inte att ändras i 4.3.x
släppserie. Findutils testsvit kör alla
testar på hitta på varje optimeringsnivå och säkerställer att
resultatet är detsamma.
EXPRESSION
Den del av kommandoraden efter listan med startpunkter är
uttrycket . _ Detta är en sorts frågespecifikation som beskriver
hur vi matchar filer och vad vi gör med de filer som fanns
matchade. Ett uttryck är sammansatt av en sekvens av saker:
Tester Tester returnerar ett sant eller falskt värde, vanligtvis på basen
av någon egenskap hos en fil som vi överväger. Den -tomma
test till exempel är sant endast när den aktuella filen är det
tömma.
Handlingar
Åtgärder har biverkningar (som att skriva ut något på
standardutgången) och returnerar antingen sant eller falskt,
vanligtvis baserat på om de är framgångsrika eller inte. De
-print action till exempel skriver ut namnet på den aktuella
fil på standardutgången.
Globala alternativ
Globala alternativ påverkar driften av tester och åtgärder
som anges på någon del av kommandoraden. Globala alternativ
returnerar alltid sant. Alternativet -depth gör till exempel
att hitta går igenom filsystemet i en djup-första ordning.
Positionsalternativ
Positionsalternativ påverkar endast tester eller åtgärder som
Följ dem. Positionsalternativ returnerar alltid sant. De
-regextype- alternativet till exempel är positionellt, specificerande
dialekten för reguljära uttryck för reguljära uttryck
inträffar senare på kommandoraden.
Operatörer
Operatörer sammanfogar de andra objekten inom
uttryck. De inkluderar till exempel -o (som betyder logisk
OR) och -a (betyder logiskt OCH). Där en operatör finns
saknas, -a antas.
Åtgärden -print utförs på alla filer som helheten
uttrycket är sant, såvida det inte innehåller en annan handling än
-beskär eller -sluta . Åtgärder som förhindrar standard -print är
-delete , -exec , -execdir , -ok , -okdir , -fls , -fprint , -fprintf ,
-ls , -print och -printf .
Åtgärden -delete fungerar också som ett alternativ (eftersom det innebär
-depth ).
POSITIONELLA ALTERNATIV
Positionsalternativ returnerar alltid sant. De påverkar bara tester
inträffar senare på kommandoraden.
-dagens start
Mät tider (för -amin , -atime , -cmin , -ctime , -mmin ,
och -mtime ) från dagens början snarare än från
24 timmar sedan. Det här alternativet påverkar bara tester som visas
senare på kommandoraden.
-Följ
Utfasad; använd alternativet -L istället. Referens
symboliska länkar. Antyder -noleaf . Alternativet -följ _
påverkar endast de tester som visas efter det på
kommandorad. Såvida inte alternativet -H eller -L har varitspecificerat, ändrar
positionen för alternativet -follow
beteendet hos predikatet -newer ; alla filer listade som
argumentet -newer kommer att avreferens om de är det
symboliska länkar. Samma hänsyn gäller för
-newerXY , -newer och -cnewer . Likaså -typen
predikatet kommer alltid att matcha filens typ
som en symbolisk länk pekar på snarare än länken
sig. Att använda -follow orsakar -lname och -ilname
predikar alltid att returnera falskt.
-regextype typ
Ändrar syntaxen för reguljära uttryck som förstås av -regex-
och -iregex -test som inträffar senare på kommandoraden.
För att se vilka reguljära uttryckstyper som är kända, använd
-regextyp hjälp . Texinfo-dokumentationen (se SE ÄVEN )
förklarar innebörden av och skillnaderna mellan
olika typer av reguljära uttryck.
-varna, -varna
Slå på eller av varningsmeddelanden. Dessa varningar gäller
endast till kommandoradens användning, inte till några villkor som
find kan stöta på när den söker i kataloger. De
standardbeteende motsvarar -warn if standard input
är en tty, och att -nowarn annars. Om ett varningsmeddelande
relaterade till kommandoradsanvändning produceras, exit
status för fyndet påverkas inte. Om miljövariabeln POSIXLY_CORRECT
är inställd och -warn också används, är den det
inte specificerat vilka, om några, varningar som kommer att vara aktiva.
GLOBALA ALTERNATIV
Globala alternativ returnerar alltid sant. Globala alternativ träder i kraft
även för tester som inträffar tidigare på kommandoraden. Till
förhindra förvirring bör globala alternativ anges på
kommandoraden efter listan med startpunkter, strax före
första testet, positionsalternativet eller åtgärden. Om du anger en global
alternativet på någon annan plats, kommer find att utfärda ett varningsmeddelande
förklara att detta kan vara förvirrande.
De globala alternativen visas efter listan med startpunkter och så
är inte samma typ av alternativ som -L , till exempel.
-d En synonym för -djup, för kompatibilitet med FreeBSD,
NetBSD, MacOS X och OpenBSD.
-djup Bearbeta varje katalogs innehåll före katalogen
sig. Åtgärden -delete innebär också -depth .
-files0-from file
Läs startpunkterna från filen istället för att hämta dem
på kommandoraden. I motsats till de kända begränsningarna
att skicka startpunkter via argument på kommandot
linje, nämligen begränsningen av mängden filnamn,
och den inneboende tvetydigheten hos filnamn som krockar med
alternativnamn, med detta alternativ kan du säkert skicka en
godtyckligt antal startpunkter att hitta .
Genom att använda det här alternativet och skicka startpunkter på
kommandoraden utesluter varandra och är det därför inte
tillåtet samtidigt.
Filargumentet är obligatoriskt . Man kan använda
-filer0-från - för att läsa listan med startpunkter från
standardinmatningsströmmen , och t.ex. från ett rör. I denna
fall, åtgärderna -ok och -okdir är inte tillåtna, eftersom
de skulle uppenbarligen störa läsning från standardinmatning
för att få en användarbekräftelse .
Startpunkterna i filen måste separeras med ASCII
NUL-tecken. Två på varandra följande NUL-tecken, dvs
startpunkt med ett noll-längd filnamn är inte tillåtet
och kommer att leda till en feldiagnostik följt av en icke-
Noll utgångskod senare.
Om den givna filen är tom, bearbetas inte find
någon startpunkt och kommer därför att avslutas omedelbart
efter att ha analyserat programargumenten. Detta är till skillnad från
standardanrop där hitta antar strömmen
katalog som startpunkt om inget sökvägsargument skickas.
Bearbetningen av utgångspunkterna är annars som
vanligt, t.ex. hitta återkommer i underkataloger om inte
annars förhindras. För att endast bearbeta utgångspunkterna,
man kan dessutom passera -maxdepth 0 .
Ytterligare anmärkningar: om en fil är listad mer än en gång i
indatafil, är det ospecificerat om den besöks mer
än en gång. Om filen muteras under operationen av
find är resultatet också ospecificerat. Slutligen, den
söka position i den namngivna filen vid tidpunkten för att hitta
utgångar, vare sig det är med -quit eller på annat sätt, är också
ospecificerad. Med "ospecificerat" menas här att det ev
eller kanske inte fungerar eller gör någon specifik sak, och att
beteende kan ändras från plattform till plattform, eller från
findutils släpper till släpp.
-hjälp hjälp
Skriv ut en sammanfattning av kommandoradens användning av hitta och
utgång.
-ignore_readdir_race
Normalt kommer find att avge ett felmeddelande när det misslyckas
ange en fil. Om du ger det här alternativet och en fil är
raderas mellan tid hitta läser namnet på filen
från katalogen och den tid den försöker ange filen,
inget felmeddelande kommer att utfärdas. Detta gäller även för
filer eller kataloger vars namn anges på kommandot
linje. Det här alternativet träder i kraft vid tidpunkten för kommandot
rad läses, vilket innebär att du inte kan söka på en del
av filsystemet med detta alternativ på och en del av det med
det här alternativet av (om du behöver göra det måste du göra det
utfärda två sökkommandon istället, ett med alternativet och
en utan).
Dessutom, hitta med alternativet -ignore_readdir_race
kommer att ignorera fel i -delete- åtgärden i fallet med
filen har försvunnit sedan den överordnade katalogen lästes:
det kommer inte att mata ut en feldiagnostik och returnera
koden för -delete- åtgärden kommer att vara sann.
-maxdjupnivåer
Gå ner på de flesta nivåer (ett icke-negativt heltal) nivåer av
kataloger under utgångspunkterna. Använder -maxdepth 0
innebär endast att tillämpa testerna och åtgärderna på start-
poäng själva.
-mindepth nivåer
Använd inte några tester eller åtgärder på nivåer som är lägre än
nivåer (ett icke-negativt heltal). Att använda -mindepth 1 betyder
bearbeta alla filer utom startpunkterna.
-mount Gå inte ner i kataloger på andra filsystem. En
alternativt namn för -xdev , för kompatibilitet med vissa
andra versioner av hitta .
-noignore_readdir_race
Stänger av effekten av -ignore_readdir_race .
-noleaf
Optimera inte genom att anta att kataloger innehåller 2
färre underkataloger än antalet hårda länkar. Detta
alternativet behövs när du söker efter filsystem som inte gör det
följ Unix kataloglänkkonventionen, såsom CD-ROM
eller MS-DOS-filsystem eller AFS-volymmonteringspunkter. Varje
katalogen på ett normalt Unix-filsystem har minst 2 hårda
länkar: dess namn och dess `.' inträde. Dessutom dess
underkataloger (om några) har var och en en ".."-post länkad till
den katalogen. När hitta undersöker en katalog, efter
den har angett 2 färre underkataloger än katalogens
länkräkning, den vet att resten av posterna i
katalogen är icke-kataloger ('blad'-filer i
katalogträd). Om bara filernas namn behöver vara det
undersökt, finns det ingen anledning att ange dem; detta ger en
betydande ökning av sökhastigheten.
-version, --version
Skriv ut sökversionsnumret och avsluta.
-xdev Gå inte ner i kataloger på andra filsystem.
TEST
Vissa tester, till exempel -newerXY och -samefile , tillåter jämförelse
mellan den akt som för närvarande granskas och någon referensfil
anges på kommandoraden. När dessa tester används,
tolkningen av referensfilen bestäms av alternativen
-H , -L och -P och alla tidigare -följer , men referensfilen är
endast undersökt en gång, vid den tidpunkt då kommandoraden tolkas. Om
referensfilen kan inte granskas (till exempel misslyckas stat(2)
-systemanropet för den), ett felmeddelande utfärdas och hitta
avslutas med en status som inte är noll.
Ett numeriskt argument n kan specificeras för tester (som -amin ,
-mtime , -gid , -inum , -links , -size , -uid och -used ) som
+n för större än n ,
-n för mindre än n ,
n för exakt n .
Tester som stöds:
-amin n
Filen användes senast mindre än, mer än eller exakt n
minuter sedan.
-nyare referens
Tidpunkten för den senaste åtkomsten av den aktuella filen är nyare
än den för den senaste dataändringen av referensfilen
. Om referens är en symbolisk länk och alternativet -H
eller alternativet -L är i kraft, då tiden för den sista
dataändring av filen den pekar på används alltid.
-tid n
Filen användes senast mindre än, mer än eller exakt
n *24 timmar sedan. När hitta räknar ut hur många 24-timmars
perioder sedan filen senast öppnades, valfri bråkdel
delen ignoreras, så för att matcha -atime +1 måste en fil ha
åtkomst för minst två dagar sedan.
-cmin n
Filens status ändrades senast mindre än, mer än eller
exakt n minuter sedan.
-Cnewer referens
Tiden för den senaste statusändringen för den aktuella filen är längre
senaste än den för den senaste dataändringen av
referensfil . Om referensen är en symbolisk länk och
alternativet -H eller alternativet -L är i kraft, är tiden för
den sista dataändringen av filen den pekar på är
alltid använd.
-ctime n
Filens status ändrades senast mindre än, mer än eller
exakt n *24 timmar sedan. Se kommentarerna för -atime to
förstå hur avrundning påverkar tolkningen av filen
statusändringstider.
-empty Filen är tom och är antingen en vanlig fil eller en katalog.
-körbar
Matchar filer som är körbara och kataloger som
är sökbara (i filnamnsupplösning) av
nuvarande användaren. Detta tar hänsyn till åtkomstkontroll
listor och andra behörighetsartefakter som -perm testar
ignorerar. Detta test använder sig av access(2) -systemet
anrop, och kan därför luras av NFS-servrar som använder UID
mappning (eller root-squashing), eftersom många system implementerar
access(2) i klientens kärna och kan därför inte använda
UID-mappningsinformationen som finns på servern. Därför att
detta test baseras endast på resultatet av åtkomsten (2)
systemanrop finns det ingen garanti för att en fil som
det här testet lyckas kan faktiskt utföras.
-falskt Alltid falskt.
-fstype typ
Filen är på ett filsystem av typen . Den giltiga
filsystemtyper varierar mellan olika versioner av Unix; en
ofullständig lista över filsystemtyper som accepteras på
någon version av Unix eller en annan är: ufs, 4.2, 4.3, nfs,
tmp, mfs, S51K, S52K. Du kan använda -printf med %F
direktiv för att se typerna av dina filsystem.
-gid n Filens numeriska grupp-ID är mindre än, mer än eller exakt
n .
-group gname
Filen tillhör gruppen gname (numeriskt grupp-ID tillåtet).
-ilname pattern
Som -lname , men matchningen är skiftlägesokänslig. Om alternativet -L
eller -follow är aktivt, testar detta
returnerar false om inte den symboliska länken är bruten.
-iname mönster
Som -name , men matchningen är skiftlägesokänslig. För
till exempel mönstren 'fo*' och 'F??' matcha filnamnen
`Foo', `FOO', `foo', `fOo', etc. Mönstret `*foo*` kommer att
matchar även en fil som heter '.foobar'.
-inum n
Filen har ett inodnummer som är mindre än, större än eller
exakt n . Det är normalt lättare att använda -samefilen
testa istället.
-ipath mönster
Som -path . men matchen är skiftlägesokänslig.
-iregex -mönster
Som -regex , men matchningen är skiftlägesokänslig.
-helnamnsmönster _
Se -ipath. Detta alternativ är mindre bärbart än
-ipath .
-länkar n
Filen har mindre än, mer än eller exakt n hårda länkar.
-lname mönster
Fil är en symbolisk länk vars innehåll matchar skalmönster
mönster . Metatecken behandlar inte `/' eller `.'
speciellt. Om alternativet -L eller -följ är in
effekt, returnerar detta test falskt om inte den symboliska länken
är bruten.
-mmin n
Filens data ändrades senast mindre än, mer än eller
exakt n minuter sedan.
-mtid n
Filens data ändrades senast mindre än, mer än eller
exakt n *24 timmar sedan. Se kommentarerna för -atime to
förstå hur avrundning påverkar tolkningen av filen
ändringstider.
-namnmönster _
Filnamnets bas (sökvägen med de ledande katalogerna
bort) matchar skalmönster . Eftersom den
ledande kataloger för filnamnen tas bort, den
mönstret ska inte innehålla ett snedstreck, eftersom `-name a/b'
kommer aldrig att matcha något (och du vill förmodligen använda
-väg istället). Ett undantag från detta är när man endast använder en
snedstreck som mönster (`-namn /'), eftersom det är ett giltigt
sträng för att matcha rotkatalogen "/" (eftersom
basnamnet på "/" är "/"). En varning utfärdas om du försöker
att passera ett mönster som innehåller en - men som inte enbart består
av ett - snedstreck, om inte miljövariabeln
POSIXLY_CORRECT är inställt eller alternativet -nowarn används.
För att ignorera en katalog och filerna under den, använd -prune
istället för att kontrollera varje fil i trädet; se en
exempel i beskrivningen av den åtgärden. Hängslen är det inte
erkänd som speciell, trots att vissa
skal inklusive Bash genomsyra hängslen med en speciell betydelse
i skalmönster. Filnamnsmatchningen utförs
med hjälp av biblioteksfunktionen fnmatch(3) . Gör det inte
glöm att skriva mönstret inom citattecken för att
skydda den från expansion av skalet.
-nyare referens
Tidpunkten för den senaste dataändringen av den aktuella filen är
nyare än den för den senaste dataändringen av
referensfil . Om referensen är en symbolisk länk och
alternativet -H eller alternativet -L är i kraft, är tiden för
den sista dataändringen av filen den pekar på är
alltid använd.
-newerXY referens
Lyckas om tidsstämpel X för filen som övervägs är
nyare än tidsstämpel Y för filreferensen . Bokstäverna
X och Y kan vara någon av följande bokstäver:
a Åtkomsttiden för filreferensen B
Födelsetiden för filreferensen c
Inodstatusändringstidpunkten för referensen
m Ändringstiden för filreferensen t
referensen tolkas direkt som en tid
Vissa kombinationer är ogiltiga; den är till exempel ogiltig
för att X ska vara t . Vissa kombinationer är inte implementerade på
alla system; till exempel B stöds inte på alla
system. Om en ogiltig eller ostödd kombination av XY
specificeras, resulterar ett allvarligt fel. Tidsspecifikationer
tolkas som för argumentet till -d- alternativet
GNU datum . Om du försöker använda födelsetiden för en referens
fil, och födelsetiden inte kan fastställas, en dödlig
felmeddelande resultat. Om du anger ett test som avser
till födelsetiden för filer som granskas kommer detta test
misslyckas för alla filer där födelsetiden är okänd.
-nogroup
Ingen grupp motsvarar filens numeriska grupp-ID.
-nöser
Ingen användare motsvarar filens numeriska användar-ID.
-path pattern
Filnamnet matchar skalmönstermönster . De
metatecken behandlar inte `/' eller `.' speciellt; så för
exempel,
hitta . -sökväg "./sr*sc"
kommer att skriva ut en post för en katalog som heter ./src/misc (if
en finns). För att ignorera ett helt katalogträd, använd -prune
istället för att kontrollera varje fil i trädet. Anteckna det
mönstermatchningstestet gäller för hela filnamnet,
med början från en av startpunkterna som anges på kommandot
linje. Det skulle bara vara vettigt att använda en absolut väg
namn här om den relevanta startpunkten också är en absolut
väg. Detta betyder att detta kommando aldrig kommer att matcha
något:
hitta bar -sökväg /foo/bar/myfile -print
Find jämför argumentet -path med sammanlänkningen av
ett katalognamn och basnamnet på filen det är
granskning. Eftersom sammanlänkningen aldrig kommer att sluta med en
snedstreck, -path -argument som slutar på ett snedstreck kommer att matcha
ingenting (förutom kanske en startpunkt som anges på
kommandorad). Predikatet -path stöds också av
HP-UX hittar och är en del av POSIX 2008-standarden.
-perm -läge
Filens tillståndsbitar är exakt läge (oktala eller
symbolisk). Eftersom en exakt matchning krävs, om du vill
för att använda det här formuläret för symboliska lägen, kanske du måste
ange en ganska komplex lägessträng. Till exempel `-perm
g=w' kommer bara att matcha filer som har läge 0020 (det vill säga
de för vilka gruppens skrivbehörighet är den enda
behörighetsuppsättning). Det är mer troligt att du kommer att vilja det
använd formerna `/' eller `-', till exempel `-perm -g=w', som
matchar alla filer med gruppskrivbehörighet. Se den
EXEMPEL avsnitt för några illustrativa exempel.
-perm - läge
Alla tillståndsbitars lägen är inställda för filen.
Symboliska lägen accepteras i denna form, och så är det
vanligtvis på det sätt som du skulle vilja använda dem. Du
måste ange `u', `g' eller `o' om du använder ett symboliskt läge.
Se avsnittet EXEMPEL för några illustrativa exempel.
-perm / mode
Något av tillståndsbitarnas läge är inställt för filen.
Symboliska lägen accepteras i denna form. Du måste
ange 'u', 'g' eller 'o' om du använder ett symboliskt läge. Ser
avsnittet EXEMPEL för några illustrativa exempel . Om
inga behörighetsbitar i läge är inställda, detta test matchar någon
fil (tanken här är att överensstämma med beteendet
av -perm -000 ).
-perm + läge
Detta stöds inte längre (och har fasats ut sedan dess
2005). Använd -perm / mode istället.
-läsbar
Matchar filer som är läsbara av den aktuella användaren.
Detta tar hänsyn till åtkomstkontrolllistor och annat
behörighetsartefakter som -perm -testet ignorerar. Detta
test använder sig av access(2) systemanropet, och så kan det vara
luras av NFS-servrar som gör UID-mappning (eller root-
squashing), eftersom många system implementerar access(2) i
klientens kärna och kan därför inte använda UID-mappningen
information som finns på servern.
-regex -mönster
Filnamnet matchar reguljärt uttrycksmönster . Det här är en
matcha på hela vägen, inte en sökning. Till exempel att
matcha en fil som heter ./fubar3, kan du använda den vanliga
uttryck `.*bar.' eller `.*b.*3', men inte `f.*r3'. De
reguljära uttryck som förstås av find är som standard
Emacs reguljära uttryck (förutom att `.' matchar
newline), men detta kan ändras med -regextypen
alternativ.
-samefile name
Filen refererar till samma inode som name . När -L är inne
effekt kan detta inkludera symboliska länkar.
-storlek n [cwbkMG]
Filen använder mindre än, mer än eller exakt n enheter av
utrymme, avrundning uppåt. Följande suffix kan användas:
`b' för 512-byte block (detta är standard om nej
suffix används)
`c' för bytes
"w" för två-byte ord
"k" för kibibyte (KiB, enheter på 1024 byte)
"M" för mebibyte (MiB, enheter på 1024 * 1024 = 1048576
byte)
`G' för gibibyte (GiB, enheter på 1024 * 1024 * 1024 =
1073741824 byte)
Storleken är helt enkelt st_size-medlemmen i strukturstatistiken
fylld av lstat (eller stat) systemanropet, avrundat uppåt
som visas ovan. Med andra ord är det förenligt med
resultat du får för ls -l . Tänk på att "%k" och
`%b' formatspecifikationer för -printf hanterar glesa filer
annorlunda. Suffixet `b' betecknar alltid 512-byte
block och aldrig 1024-byte block, vilket skiljer sig från
beteendet hos -ls .
Prefixen + och - betyder större än och mindre än,
som vanligt; dvs en exakt storlek på n enheter matchar inte.
Tänk på att storleken avrundas uppåt till nästa enhet.
Därför motsvarar -storlek -1M inte -storlek -1048576c .
Den förra matchar bara tomma filer, den senare matchar
filer från 0 till 1 048 575 byte.
-sant Alltid sant.
-typ c
Filen är av typ c :
b block (buffrad) special
c-tecken (obuffrad) special
d katalog
p named pipe (FIFO)
f vanlig fil
l symbolisk länk; detta är aldrig sant om alternativet -L
eller alternativet -follow är i kraft, om inte
symbolisk länk är bruten. Om du vill söka efter
symboliska länkar när -L är i kraft, använd -xtype .
s uttag
D dörr (Solaris)
För att söka efter mer än en typ på en gång kan du tillhandahålla
den kombinerade listan med typbokstäver separerade med kommatecken `,'
(GNU-förlängning).
-uid n Filens numeriska användar-ID är mindre än, mer än eller exakt
n .
-used n
Filen användes senast mindre än, mer än eller exakt n
dagar efter att dess status senast ändrades.
-user uname
Filen ägs av användaren uname (numeriskt användar-ID tillåtet).
-helnamnsmönster
Se -sökväg . Detta alternativ är mindre portabelt än -path .
-skrivbar
Matchar filer som är skrivbara av den aktuella användaren.
Detta tar hänsyn till åtkomstkontrolllistor och annat
behörighetsartefakter som -perm -testet ignorerar. Detta
test använder sig av access(2) systemanropet, och så kan det vara
luras av NFS-servrar som gör UID-mappning (eller root-
squashing), eftersom många system implementerar access(2) i
klientens kärna och kan därför inte använda UID-mappningen
information som finns på servern.
-xtype c
Samma som -type om inte filen är en symbolisk länk. För
symboliska länkar: om alternativet -H eller -P angavs, sant
om filen är en länk till en fil av typ c ; om alternativet -L
har getts, sant om c är 'l'. Med andra ord,
för symboliska länkar kontrollerar -xtype typen av fil
den -typen kontrollerar inte.
-kontextmönster _
(endast SELinux) Säkerhetskontexten för filen matchar glob
mönster .
HANDLINGAR
-radera
Ta bort filer eller kataloger; sant om borttagningen lyckades.
Om borttagningen misslyckades skickas ett felmeddelande och
find s utgångsstatus kommer att vara noll (när den så småningom
utgångar).
Varning : Glöm inte att hitta utvärderar kommandoraden
som ett uttryck, så att sätta -delete först kommer att göra find
försök att ta bort allt under startpunkterna du
specificerad.
Användningen av åtgärden -delete på kommandoraden
aktiverar automatiskt alternativet -djup . Eftersom
-depth i sin tur gör -prune ineffektiv, kan -delete- åtgärden inte
med fördel kombineras med -prune .
Ofta kanske användaren vill testa en hitta kommandorad
med -print innan du lägger till -delete för själva borttagningen
springa. För att undvika överraskande resultat är det oftast bäst att
kom ihåg att använda -depth uttryckligen under de tidigare
testkörningar.
Åtgärden -delete kommer inte att ta bort en katalog om inte
det är tomt.
Tillsammans med alternativet -ignore_readdir_race , find will
ignorera fel i -delete- åtgärden i fallet med filen
har försvunnit sedan den överordnade katalogen lästes: den
kommer inte att mata ut en feldiagnostik, inte ändra utgången
kod till icke-noll, och returkoden för -delete- åtgärden
kommer att vara sant.
-exec kommando ;
Kör kommandot ; sant om 0 status returneras. Allt
följande argument att hitta anses vara argument för
kommandot tills ett argument som består av `;' är
påträffade. Strängen `{}' ersätts av den nuvarande
filnamnet bearbetas överallt där det förekommer i
argument till kommandot, inte bara i argument där det
är ensam, som i vissa versioner av hitta . Båda dessa
konstruktioner kan behöva escapes (med en `\') eller
citerade för att skydda dem från expansion av skalet. Seravsnittet EXEMPEL
för exempel på användningen av -exec
alternativ. Det angivna kommandot körs en gång för varje
matchad fil. Kommandot exekveras i starten
katalog. Det finns oundvikliga säkerhetsproblem
omgivande användning av -exec -åtgärden; du bör använda
alternativet -execdir istället.
-exec kommandot {} +
Denna variant av -exec -åtgärden kör den angivna
kommandot på de valda filerna, men kommandoraden är
byggd genom att lägga till varje valt filnamn i slutet; de
det totala antalet anrop av kommandot kommer att vara mycket
mindre än antalet matchade filer. Kommandoraden
är byggd på ungefär samma sätt som xargs bygger sin
kommandorader. Endast en instans av `{}' är tillåten
inom kommandot, och det måste visas i slutet,
omedelbart före `+'; det måste undkomma (med en
`\') eller citeras för att skydda den från tolkning av
skal. Kommandot körs i startkatalogen.
Om någon anrop med "+"-formen returnerar en icke-noll
värde som utgångsstatus, returnerar sedan en utgång som inte är noll
status. Om hitta stöter på ett fel kan detta ibland
orsaka en omedelbar utgång, så vissa väntande kommandon kanske inte
köras överhuvudtaget. Av denna anledning kanske -exec my-
command ... {} + -quit inte resulterar i att my-command
faktiskt körs. Denna variant av -exec returnerar alltid
Sann.
-execdir kommando ;
-execdir kommandot {} +
Som -exec , men det angivna kommandot körs från
underkatalog som innehåller den matchade filen, vilket inte är det
normalt katalogen där du började hitta . Som med
-exec, {} ska citeras om fyndet anropas
från ett skal. Detta är en mycket säkrare metod för att anropa
kommandon, eftersom det undviker tävlingsförhållanden under upplösning
av sökvägarna till de matchade filerna. Precis som med -exec
-åtgärden kommer "+"-formen av -execdir att bygga en kommandorad
att bearbeta mer än en matchad fil, men en given fil
anrop av kommando kommer bara att lista filer som finns i
samma underkatalog. Om du använder det här alternativet måste du
se till att din PATH- miljövariabel inte gör det
referens `.'; annars kan en angripare köra vilka kommandon som helst
de gillar genom att lämna en fil med lämpligt namn i en
katalog där du kommer att köra -execdir . Det samma
gäller att ha poster i PATH som är tomma eller vilka
är inte absoluta katalognamn. Om någon åkallelse med
"+"-formuläret returnerar ett värde som inte är noll som utgångsstatus
find returnerar en utgångsstatus som inte är noll. Om hitta möten
ett fel, kan detta ibland orsaka en omedelbar utgång, så
vissa väntande kommandon kanske inte körs alls. Resultatet
av åtgärden beror på om + eller ; variant är
används; -execdir kommando {} + returnerar alltid true,
while -execdir kommando {} ; returnerar bara sant om kommandot
ger 0.
-fls fil
Sant; gillar -ls men skriv till filen som -fprint . Utgången
fil skapas alltid, även om predikatet aldrig är det
matchade. Se avsnittet OVENLIGA FILNAMN för
information om hur ovanliga tecken i filnamn är
hanteras.
-fprint fil
Sant; skriv ut hela filnamnet i filfilen . Om filen
inte finns när find körs skapas den; om det gör det
existerar, är det stympat. Filnamnen /dev/stdout och
/dev/stderr hanteras speciellt; de hänvisar till
standardutgång respektive standardfelutgång.
Utdatafilen skapas alltid, även om predikatet
är aldrig matchad. Se avsnittet OVENLIGA FILNAMN för
information om hur ovanliga tecken i filnamn är
hanteras.
-fprint0 fil
Sant; som -print0 men skriv till filen som -fprint . De
utdatafil skapas alltid, även om predikatet är det
aldrig matchade. Se avsnittet OVENLIGA FILNAMN för
information om hur ovanliga tecken i filnamn är
hanteras.
-fprintf filformat
True; gillar -printf men skriv till filen som -fprint . De
utdatafil skapas alltid, även om predikatet är det
aldrig matchade. Se avsnittet OVENLIGA FILNAMN för
information om hur ovanliga tecken i filnamn är
hanteras.
-ls Sant; lista aktuell fil i ls -dils format på standard
produktion. Blockantalet är 1 KB block, såvida inte
miljövariabeln POSIXLY_CORRECT är inställd, i vilket fall
512-byte block används. Se OVENLIGA FILNAMN
avsnitt för information om hur ovanliga tecken in
filnamn hanteras.
-ok kommando ;
Gilla -exec men fråga användaren först. Om användaren samtycker,
kör kommandot. Annars är det bara att returnera falskt. Om
kommandot körs, dess standardinmatning omdirigeras från
/dev/null . Denna åtgärd får inte anges tillsammans medalternativet
-files0 -from .
Svaret på prompten matchas mot ett par
reguljära uttryck för att avgöra om det är jakande
eller negativ respons. Detta reguljära uttryck erhålls
från systemet om miljön POSIXLY_CORRECT
variabeln är inställd, eller på annat sätt från find s meddelande
översättningar. Om systemet inte har någon lämplig definition,
finds egen definition kommer att användas. I båda fallen
tolkning av det reguljära uttrycket i sig kommer att vara
påverkas av miljövariablerna LC_CTYPE (tecken
klasser) och LC_COLLATE (teckenintervall och ekvivalens
klasser).
-okdir kommando ;
Gilla -execdir men fråga användaren först på samma sätt som
för -ok . Om användaren inte accepterar, returnera bara false.
Om kommandot körs omdirigeras dess standardinmatning
från /dev/null . Denna åtgärd kanske inte anges tillsammans
med alternativet -files0-from .
-print Sant; skriv ut hela filnamnet på standardutdata,
följt av en nyrad. Om du rör utgången av
hitta in i ett annat program och där finns det svagaste
möjligheten att filerna som du söker efter
kan innehålla en ny rad, så borde du seriöst
överväg att använda alternativet -print0 istället för -print . Ser
avsnittet OVENLIGA FILNAMN för information om hur
ovanliga tecken i filnamn hanteras.
-tryck 0
Sann; skriv ut hela filnamnet på standardutdata,
följt av ett nolltecken (istället för nyraden
tecken som -print använder). Detta tillåter filnamn som
innehålla nylinjer eller andra typer av blanksteg att vara
korrekt tolkad av program som bearbetar sökresultatet
. Detta alternativ motsvarar alternativet -0 för
xargs .
-printf format
Sant; utskriftsformat på standardutgången, tolkning
`\' escapes och `%' direktiv. Fältbredder och
precisioner kan specificeras som med printf(3) C
fungera. Observera att många av fälten är utskrivna
som %s snarare än %d, och det kan betyda att flaggor inte gör det
fungera som du kan förvänta dig. Detta betyder också att "-"
flaggan fungerar (den tvingar fält att vara vänsterjusterade).
Till skillnad från -print lägger -printf inte till en nyrad i slutet
av strängen. Utrymningarna och direktiven är:
\a Alarmklocka.
\b Backsteg.
\c Sluta omedelbart att skriva ut från detta format och
spola utgången.
\f Form feed.
\n Ny linje.
Vagnretur.
\t Horisontell flik.
\v Vertikal flik.
\0 ASCII NUL.
\\ Ett bokstavligt snedstreck (`\').
\NNN Det tecken vars ASCII-kod är NNN (oktal).
Ett `\'-tecken följt av ett annat tecken behandlas
som ett vanligt tecken, så de båda skrivs ut.
%% Ett bokstavligt procenttecken.
%a Filens senaste åtkomsttid i formatet som returneras avfunktionen
C ctime(3) .
%A k Filens senaste åtkomsttid i formatet som anges av
k , vilket är antingen `@' eller ett direktiv för funktionen C
strftime(3) . Följande visar en
ofullständig lista över möjliga värden för k . Snälla du
se dokumentationen för strftime(3) för
full lista. Några av konverteringsspecifikationerna
tecken kanske inte är tillgängliga på alla system,
på grund av skillnader i genomförandet av
strftime(3) biblioteksfunktion.
@ sekunder sedan 1 januari 1970, 00:00 GMT, med
bråkdel.
Tidsfält:
H timme (00..23)
I timme (01..12)
k timme (0..23)
l timme (1..12)
M minut (00..59)
p-lokalens AM eller PM
r tid, 12 timmar (hh:mm:ss [AP]M)
S Andra (00.00 ... 61.00). Det finns en
bråkdel.
T tid, 24 timmar (hh:mm:ss.xxxxxxxxxx)
+ Datum och tid, avgränsade med "+", till exempel
"2004-04-28+22:22:05.0". Detta är en GNU
förlängning. Tiden anges i strömmen
tidszon (som kan påverkas av inställningen
miljövariabeln TZ ). Sekunderna
fältet innehåller en bråkdel.
X-lokalens tidsrepresentation (H:M:S). De
sekunders fält innehåller en bråkdel.
Z tidszon (t.ex. EDT), eller ingenting om ingen tid
zonen är bestämbar
Datumfält:
en lokals förkortade veckodagsnamn (sön..lör)
En lokals fullständiga veckodagsnamn, variabel längd
(Söndag lördag)
b-lokalens förkortade månadsnamn (jan..dec)
B-lokalens fullständiga månadsnamn, variabel längd
(januari..december)
c lokalens datum och tid (lör 4 november 12:02:33
EST 1989). Formatet är detsamma som för
ctime(3) och så för att bevara kompatibiliteten
med det formatet finns det ingen bråk
del i sekundfältet.
d dag i månaden (01..31)
D-datum (mm/dd/åå)
F-datum (åååå-mm-dd)
h samma som b
j dag på året (001..366)
m månad (01..12)
U veckonummer år med söndag som första dag
veckan (00..53)
w veckodag (0..6)
W veckonummer år med måndag som första dag
veckan (00..53)
x-lokalens datumrepresentation (mm/dd/åå)
y sista två siffror i år (00..99)
Y år (1970...)
%b Mängden diskutrymme som används för den här filen
512-byte block. Eftersom diskutrymme är allokerat i
multipler av filsystemets blockstorlek detta är
vanligtvis större än %s/512, men det kan också vara det
mindre om filen är en gles fil.
%B k Filens födelsetid, dvs. dess skapelsetid, i
format som anges av k , vilket är samma som för %A.
Detta direktiv producerar en tom sträng om
underliggande operativsystem eller filsystem gör det inte
stödja födelsetider.
%c Filens senaste statusändringstid i formatetreturneras av funktionen
C ctime(3) .
%C k Filens senaste statusändringstid i formatet
specificeras av k , vilket är samma som för %A.
%d Filens djup i katalogträdet; 0 betyder
filen är en utgångspunkt.
%D Det enhetsnummer som filen finns på (den
st_dev-fältet för struct stat), i decimal.
%f Skriv ut basnamnet; filens namn med någon
ledande kataloger borttagna (endast de sista
element). För / är resultatet `/'. Se
avsnittet EXEMPEL för ett exempel.
%F Typ av filsystem filen är på; detta värde
kan användas för -fstype.
%g Filens gruppnamn, eller numeriskt grupp-ID om gruppen
har inget namn.
%G Filens numeriska grupp-ID.
%h Dirname; de ledande katalogerna för filens namn
(alla utom det sista elementet). Om filnamnet
innehåller inga snedstreck (eftersom den är i strömmen
katalog) %h-specifikationen expanderas till `.'. För
filer som i sig är kataloger och innehåller
ett snedstreck (inklusive / ), %h expanderar till det tomma
sträng. Se avsnittet EXEMPEL för ett exempel.
%H Startpunkt under vilken filen hittades.
%i Filens inodnummer (i decimal).
%k Mängden diskutrymme som används för denna fil i 1 KB
block. Eftersom diskutrymme allokeras i multiplar
av filsystemets blockstorlek är detta vanligtvis
större än %s/1024, men den kan också vara mindre om
filen är en gles fil.
%l Objekt med symbolisk länk (tom sträng om filen är
inte en symbolisk länk).
%m Filens behörighetsbitar (i oktal). Detta alternativ
använder de "traditionella" talen som de flesta Unix
implementeringar använder, men om din speciella
implementering använder en ovanlig ordning av oktal
behörighetsbitar kommer du att se en skillnad mellan
det faktiska värdet av filens läge och utdata
av %m. Normalt vill du ha en ledande
noll på detta nummer, och för att göra detta bör du använda#
-flaggan (som i t.ex. `%#m').
%M Filens behörigheter (i symbolisk form, som för ls ).
Detta direktiv stöds i findutils 4.2.5 och
senare.
%n Antal hårda länkar till fil.
%p Filens namn.
%P Filens namn med namnet på startpunkten
under vilken den hittades borttagen.
%s Filstorlek i byte.
%S Filens gleshet. Detta beräknas som
(BLOCKSIZE*st_blocks /st_size). Det exakta värdet
du får för en vanlig fil av en viss
längden är systemberoende. Dock normalt
glesa filer kommer att ha värden mindre än 1.0, och
filer som använder indirekta block kan ha ett värde
vilket är större än 1,0. I allmänhet numret
av block som används av en fil är filsystemberoende.
Värdet som används för BLOCKSIZE är systemberoende,
men är vanligtvis 512 byte. Om filstorleken är
noll, det utskrivna värdet är odefinierat. På system
som saknar stöd för st_blocks, en fils
glesheten antas vara 1,0.
%t Filens senaste ändringstid i formatetreturneras av funktionen
C ctime(3) .
%T k Filens senaste ändringstid i formatet
specificeras av k , vilket är samma som för %A.
%u Filens användarnamn, eller numeriskt användar-ID om användaren
har inget namn.
%U Filens numeriska användar-ID.
%y Filtyp (som i ls -l ), U=okänd typ
(borde inte hända)
%Y Filtyp (som %y), plus följ symboliska länkar:
`L'=loop, `N'=befintlig, `?' för alla andra fel
när man bestämmer typen av målet för en
symbolisk länk.
%Z (endast SELinux) filens säkerhetskontext.
%{ %[ %(
Reserverad för framtida bruk.
Ett `%'-tecken följt av ett annat tecken är
kasseras, men det andra tecknet skrivs ut (lita inte
på detta, eftersom ytterligare formattecken kan införas).
En `%' i slutet av formatargumentet orsakar odefinierat
beteende eftersom det inte finns någon följande karaktär. I några
lokaler, kan det dölja dina dörrnycklar, medan det i andra
kan ta bort den sista sidan från romanen du läser.
Direktiven %m och %d stöder flaggorna # , 0 och + , men
de andra direktiven gör det inte, även om de trycker siffror.
Numeriska direktiv som inte stöder dessa flaggor inkluderar
G , U , b , D , k och n . "-"-formatflaggan stöds och
ändrar justeringen av ett fält från högerjusterat
(vilket är standard) till vänsterjusterad.
Se avsnittet OVENLIGA FILNAMN för information om
hur ovanliga tecken i filnamn hanteras.
-beskär Sant; om filen är en katalog, gå inte ner i den.
Om -djup ges, har -prune ingen effekt. Eftersom
-delete innebär -depth , kan du inte använda -prune och
-delete tillsammans. Till exempel att hoppa över katalogen
src/emacs och alla filer och kataloger under den, och
skriv ut namnen på de andra filerna som hittats, gör något
så här:
hitta . -sökväg ./src/emacs -prune -o -print
-quit Avsluta omedelbart (med returvärde noll om inga fel har
inträffade). Detta skiljer sig från -prune eftersom -prune
gäller endast innehållet i beskurna kataloger, medan
-quit gör helt enkelt att hitta stannar omedelbart. Inget barn
processer kommer att köras. Alla kommandorader som
har byggts av -exec ... + eller -execdir ... + are
anropas innan programmet avslutas. Efter -avsluta är
körs kommer inga fler filer som anges på kommandoraden
bearbetas. Till exempel,
` find /tmp/foo /tmp/bar -print -quit ` kommer endast att skrivas ut
`/tmp/foo`.
En vanlig användning av -quit är att sluta söka i filen
system när vi har hittat det vi vill ha. Till exempel om
vi vill bara hitta en enda fil vi kan göra så här:
hitta / -namn nål -print -quit
OPERATÖRER
Listad i fallande prioritetsordning:
( expr )
Tvinga företräde. Eftersom parenteser är speciella för
shell, du kommer normalt att behöva citera dem. Många av
exempel på den här manualsidan använder snedstreck för detta
syfte: `\(...\)' istället för `(...)'.
! expr True om expr är falskt. Denna karaktär kommer också vanligtvis
behöver skydd mot tolkning av skalet.
-inte expr
Samma som ! expr , men inte POSIX-kompatibel.
expr1 expr2
Två uttryck i rad anses vara sammanfogade med en
underförstådd -a ; expr2 utvärderas inte om expr1 är falskt.
expr1 -a expr2
Samma som expr1 expr2 .
expr1 -och expr2
Samma som expr1 expr2 , men inte POSIX-kompatibel.
expr1 -o expr2
Eller; expr2 utvärderas inte om expr1 är sant.
expr1 -eller expr2
Samma som expr1 -o expr2 , men inte POSIX-kompatibel.
expr1 , expr2
Lista; både expr1 och expr2 utvärderas alltid. De
värdet på expr1 kasseras; värdet på listan är
värdet av expr2 . Kommaoperatorn kan vara användbar för
söker efter flera olika typer av saker, men
gå igenom filsystemhierarkin endast en gång. De
-fprintf action kan användas för att lista de olika matchade
objekt i flera olika utdatafiler.
Observera att -a när det anges implicit (till exempel med två
tester som visas utan en explicit operatör mellan dem) eller
har uttryckligen högre prioritet än -o . Det betyder att hitta .
-name afile -o -name bfile -print kommer aldrig att skriva ut afile .
OVENLIGA FILNAMN topp
Många av åtgärderna för att hitta resulterar i utskrift av data som
är under kontroll av andra användare. Detta inkluderar filnamn,
storlekar, modifieringstider och så vidare. Filnamn är en
potentiellt problem eftersom de kan innehålla vilket tecken som helst förutom
`\0' och `/'. Ovanliga tecken i filnamn kan göra oväntat
och ofta oönskade saker till din terminal (t.ex.
ändra inställningarna för dina funktionstangenter på vissa terminaler).
Ovanliga karaktärer hanteras olika av olika handlingar, som
beskrivet nedan.
-print0, -fprint0
Skriv alltid ut det exakta filnamnet, oförändrat, även om
utgången går till en terminal.
-ls, -fls
Ovanliga karaktärer undkommer alltid. Vitt utrymme,
omvänt snedstreck och dubbla citattecken skrivs ut med
C-stil escaping (till exempel `\f', `\"'). Annat ovanligt
tecken skrivs ut med en oktal escape. Övrig
utskrivbara tecken (för -ls och -fls är dessa
tecken mellan oktal 041 och 0176) skrivs ut som de är.
-printf, -fprintf
Om utgången inte går till en terminal skrivs den ut
i befintligt skick. Annars beror resultatet på vilket direktiv
är i bruk. Direktiven %D, %F, %g, %G, %H, %Y och %y
expandera till värden som inte är under kontroll av filer"
ägare, och så skrivs de ut som de är. Direktiven %a, %b,
%c, %d, %i, %k, %m, %M, %n, %s, %t, %u och %U har värden
som är under kontroll av filers ägare men vilka
kan inte användas för att skicka godtyckliga data till terminalen, och
så dessa skrivs ut som de är. Direktiven %f, %h, %l, %p
och %P är citerade. Denna citat utförs på samma sätt
sätt som för GNU ls . Detta är inte samma citeringsmekanism
som den som används för -ls och -fls . Om du kan
bestäm vilket format som ska användas för utmatningen av hitta sedan det
är normalt bättre att använda `\0' som en terminator än att använda
nyrad, eftersom filnamn kan innehålla blanksteg och nyrad
tecken. Inställningen för LC_CTYPE -miljön
variabel används för att bestämma vilka tecken som måste vara
citerade.
-tryck, -ftryck
Citering hanteras på samma sätt som för -printf och
-fprintf . Om du använder hitta i ett skript eller i en
situation där de matchade filerna kan vara godtyckliga
namn bör du överväga att använda -print0 istället för
-print .
Åtgärderna -ok och -okdir skriver ut det aktuella filnamnet som det är.
Detta kan ändras i en framtida version.
STANDARD KONFORMANCE topp
För närmast överensstämmelse med POSIX-standarden bör du ställa in
miljövariabeln POSIXLY_CORRECT . Följande alternativ är
specificeras i POSIX-standarden (IEEE Std 1003.1-2008, 2016
Utgåva):
-H Det här alternativet stöds.
-L Det här alternativet stöds.
-name Det här alternativet stöds, men POSIX-överensstämmelse beror på
POSIX-överensstämmelsen för systemets fnmatch(3) -bibliotek
fungera. Från och med findutils-4.2.2, skalmetatecken
(`*', `?' eller `[]' till exempel) matchar en ledande `.',
eftersom IEEE PASC-tolkning 126 kräver detta. Detta
är en ändring från tidigare versioner av findutils.
-typ Stöds. POSIX anger `b', `c', `d', `l', `p', `f'
och `s'. GNU find stöder också `D', som representerar en dörr,
där OS tillhandahåller dessa. Dessutom tillåter GNU find
flera typer som ska anges samtidigt i ett komma-
separerad lista.
-ok Stöds. Tolkning av svaret är enl
"ja"- och "nej"-mönstren som väljs genom att ställa in
LC_MESSAGES miljövariabel. När
miljövariabeln POSIXLY_CORRECT är inställd kommer dessa
mönster tas systemets definition av ett positivt (ja)
eller negativt (ingen) svar. Se systemets dokumentation
för nl_langinfo(3) , särskilt YESEXPR och NOEXPR.
När POSIXLY_CORRECT inte är inställt är mönstren istället
hämtad från finds egen meddelandekatalog.
-nyare Stöds. Om den angivna filen är en symbolisk länk, är den
är alltid bortskämd. Detta är en förändring från tidigare
beteende, som brukade ta den relevanta tiden från
symbolisk länk; se avsnittet HISTORIK nedan.
-perm Stöds. Om miljövariabeln POSIXLY_CORRECT är
inte satt, vissa lägesargument (till exempel +a+x) som är
inte giltigt i POSIX stöds för bakåt-
kompatibilitet.
Andra primärval
Primärerna -atime , -ctime , -depth , -exec , -group ,
-links , -mtime , -nogroup , -nouser , -ok , -path , -print ,
-prune , -size , -user och -xdev är allt stöds.
POSIX-standarden anger parenteser `(', `)', negation `!'
och de logiska OCH/ELLER-operatorerna -a och -o .
Alla andra alternativ, predikat, uttryck och så vidare är
tillägg utöver POSIX-standarden. Många av dessa tillägg
är dock inte unika för GNU-fynd.
POSIX-standarden kräver att hitta detekterar loopar:
Sökverktyget ska detektera oändliga loopar ; det är,
gå in i en tidigare besökt katalog som är en
förfader till den senaste filen som påträffades. När den upptäcker en
infinite loop, find ska skriva ett diagnostiskt meddelande till
standardfel och ska antingen återställa sin position i
hierarkin eller avsluta.
GNU find uppfyller dessa krav. Länkantalet på
kataloger som innehåller poster som är hårda länkar till en
förfader kommer ofta att vara lägre än de annars borde vara. Detta
kan innebära att GNU-fynd ibland optimerar bort besöket
av en underkatalog som faktiskt är en länk till en förfader. Eftersom
find faktiskt inte går in i en sådan underkatalog, det är tillåtet
för att undvika att sända ett diagnostiskt meddelande. Även om detta beteende
kan vara något förvirrande, det är osannolikt att någon faktiskt
beror på detta beteende. Om lövoptimeringen har varit
avstängd med -noleaf , kommer katalogposten alltid att vara det
undersökt och diagnosmeddelandet kommer att utfärdas där det finns
lämplig. Symboliska länkar kan inte användas för att skapa filsystem
cykler som sådan, men om alternativet -L eller -följ är in
användning, utfärdas ett diagnostiskt meddelande när hitta stöter på en loop
av symboliska länkar. Som med slingor som innehåller hårda länkar, bladet
optimering innebär ofta att hitta vet att den inte behöver
att anropa stat() eller chdir() på den symboliska länken, så detta
diagnostik är ofta inte nödvändig.
Alternativet -d stöds för kompatibilitet med olika BSD
system, men du bör använda det POSIX-kompatibla alternativet -depth
istället.
Miljövariabeln POSIXLY_CORRECT
påverkar inte
beteendet hos -regex- eller -iregex -testen eftersom dessa tester
är inte specificerade i POSIX-standarden.
MILJÖVARIABLER topp
LANG Ger ett standardvärde för internationaliseringen
variabler som är inställda eller null.
LC_ALL Om inställt på ett icke-tomt strängvärde, åsidosätt värdena för
alla andra internationaliseringsvariabler.
LC_COLLATE
POSIX-standarden anger att denna variabel påverkar
mönstermatchningen som ska användas för alternativet -name . GNU
find använder biblioteksfunktionen fnmatch(3) och så stöd
för LC_COLLATE beror på systembiblioteket. Detta
variabeln påverkar också tolkningen av svaret
till -ok ; medan variabeln LC_MESSAGES väljer den faktiska
mönster som används för att tolka svaret på -ok , den
tolkning av eventuella parentesuttryck i mönstret
kommer att påverkas av LC_COLLATE .
LC_CTYPE
Denna variabel påverkar behandlingen av karaktärsklasser
används i reguljära uttryck och även med -name- testet,
om systemets biblioteksfunktion fnmatch(3) stöder detta.
Denna variabel påverkar också tolkningen av ev
teckenklasser i reguljära uttryck som används för
tolka svaret på prompten från -ok . Miljövariabeln
LC_CTYPE kommer också att påverka vilken
tecken anses vara oskrivbara när filnamn
är tryckta; se avsnittet OVENLIGA FILNAMN.
LC_MESSAGES
Bestämmer den plats som ska användas för internationaliserad
meddelanden. Om miljövariabeln POSIXLY_CORRECT är
uppsättning, detta avgör också tolkningen av
svar på uppmaningen från -ok- åtgärden.
NLSPATH
Bestämmer platsen för internationaliseringen
meddelandekataloger.
PATH Påverkar katalogerna som söks för att hitta
körbara filer som anropas av -exec , -execdir , -ok och -okdir .
POSIXLY_CORRECT
Bestämmer blockstorleken som används av -ls och -fls . Om
POSIXLY_CORRECT är inställt är blocken enheter på 512 byte.
Annars är de enheter på 1024 byte.
Om du ställer in denna variabel stänger du också av varningsmeddelanden
(det vill säga antyder -nowarn ) som standard, eftersom POSIX
kräver att förutom utdata för -ok , alla meddelanden
tryckt på stderr är diagnostik och måste resultera i en
utgångsstatus som inte är noll.
När POSIXLY_CORRECT inte är inställt behandlas -perm +zzz
precis som -perm /zzz om +zzz inte är ett giltigt symboliskt läge.
När POSIXLY_CORRECT är inställt behandlas sådana konstruktioner
som ett fel.
När POSIXLY_CORRECT är inställt kommer svaret på prompten
gjord av -ok handlingen tolkas enligt
systemets meddelandekatalog, till skillnad från enl
hitta egna meddelandeöversättningar.
TZ Påverkar den tidszon som används för en del av de tidsrelaterade
formatdirektiv av -printf och -fprintf .
EXEMPEL överst
Enkel `find|xargs`-metod
• Hitta filer med namnet core i eller under katalogen /tmp and
radera dem.
$ hitta /tmp -namn kärna -typ f -print | xargs /bin/rm -f
Observera att detta kommer att fungera felaktigt om det finns några
filnamn som innehåller nya rader, enkla eller dubbla citattecken, eller
mellanslag.
Säkrare `find -print0 | xargs -0` approach
• Hitta filer med namnet core i eller under katalogen /tmp and
radera dem, bearbeta filnamn på ett sådant sätt att filen
eller katalognamn som innehåller enkla eller dubbla citattecken,
mellanslag eller nyrader hanteras korrekt.
$ hitta /tmp -namn kärna -typ f -print0 | xargs -0 /bin/rm -f
-namntestet kommer före -typetestet för att
undvika att behöva anropa stat(2) på varje fil.
Observera att det fortfarande pågår ett lopp mellan tidsfynd genomgångar
hierarkin som skriver ut de matchande filnamnen, och tiden för
process som körs av xargs fungerar med den filen.
Bearbetar godtyckliga utgångspunkter
• Med tanke på att ett annat programproggy förfiltrerar och skapar
en enorm NUL-separerad lista med filer, bearbeta dem som
startpunkter och hitta alla vanliga, tomma filer bland
dem:
$ proggy | hitta -filer0-från - -maxdjup 0 -typ f -tom
Användningen av `-filer0-från -` betyder att läsa namnen på
utgångspunkter från standardinmatning , dvs från röret;
och -maxdepth 0 säkerställer att endast dessa poster explicit
granskas utan att återkomma i kataloger (i
om en av utgångspunkterna är en).
Utföra ett kommando för varje fil
• Kör fil på varje fil i eller under den aktuella katalogen.
$ hitta. -typ f -exec filen '{}' \;
Observera att hängslen är omgivna av enkla citattecken
för att skydda dem från tolkning som skalmanus
skiljetecken. Semikolonet skyddas på liknande sätt av
användning av ett snedstreck, även om enstaka citattecken kunde ha varit det
används i så fall också.
I många fall kanske man föredrar `-exec ... +` eller bättre
`-execdir ... +` -syntaxen av prestanda- och säkerhetsskäl.
Gå igenom filsystemet bara en gång - för 2 olika åtgärder
• Gå igenom filsystemet bara en gång, lista set-user-ID
filer och kataloger till /root/suid.txt och stora filer
till /root/big.txt .
$ hitta / \
\( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \ \(
-storlek +100M -fprintf /root/big.txt '%- 10s %p\n' \)
Det här exemplet använder radfortsättningstecknet '\' på
de två första raderna för att instruera skalet att fortsätta
läser kommandot på nästa rad.
Söker efter filer efter ålder
• Sök efter filer i din hemkatalog som har varit
har ändrats under de senaste tjugofyra timmarna.
$ hitta $HOME -mtid 0
Detta kommando fungerar på detta sätt eftersom tiden sedan varje
filen ändrades senast delas med 24 timmar och eventuella
resten kasseras. Det betyder att för att matcha -mtime
0 måste en fil ha en modifiering i det förflutna
vilket är mindre än 24 timmar sedan.
Söker efter filer med behörigheter
• Sök efter filer som är körbara men inte läsbara.
$ hitta /sbin /usr/sbin -körbar \! -läsbart -tryck
• Sök efter filer som har läs- och skrivbehörighet för
deras ägare och grupp, men som andra användare kan läsa men
inte skriva till.
$ hitta. -perm 664
Filer som uppfyller dessa kriterier men har andra behörigheter
bitar set (till exempel om någon kan köra filen)
kommer inte att matchas.
• Sök efter filer som har läs- och skrivbehörighet för
deras ägare och grupp, och som andra användare kan läsa,
utan hänsyn till förekomsten av något extra tillstånd
bitar (till exempel den körbara biten).
$ hitta. -perm -664
Detta kommer att matcha en fil som har läge 0777 , till exempel.
• Sök efter filer som är skrivbara av någon (deras
ägare, eller deras grupp eller någon annan).
$ hitta. -perm /222
• Sök efter filer som är skrivbara av någon av deras ägare
eller deras grupp.
$ hitta. -perm /220
$ hitta . -perm /u+w,g+w
$ hitta . -perm /u=w,g=w
Alla dessa tre kommandon gör samma sak, men
den första använder den oktala representationen av filläget,
och de andra två använder den symboliska formen. Filerna gör det inte
måste kunna skrivas av både ägaren och gruppen
matchade; antingen kommer att göra.
• Sök efter filer som är skrivbara av båda deras ägare
och deras grupp.
$ hitta. -perm -220
$ hitta . -perm -g+w,u+w
Båda dessa kommandon gör samma sak.
• En mer detaljerad sökning på behörigheter.
$ hitta. -perm -444 -perm /222 \! -perm /111
$ hitta . -perm -a+r -perm /a+w \! -perm /a+x
Dessa två kommandon söker båda efter filer som är läsbara
för alla ( -perm -444 eller -perm -a+r ), har minst
en skrivbit set ( -perm /222 eller -perm /a+w ) men är det inte
körbar för vem som helst ( ! -perm /111 eller ! -perm /a+x
respektive).
Beskärning - utelämna filer och underkataloger
• Kopiera innehållet i /source-dir till /dest-dir , men utelämna
filer och kataloger med namnet .snapshot (och allt i
dem). Det utelämnar också filer eller kataloger vars namn slutar
i `~', men inte deras innehåll.
$ cd /source-dir
$ hitta . -namn .snapshot -prune -o \( \! -namn '*~' -print0 \) \
| cpio -pmd0 /dest-dir
Konstruktionen -prune -o \( ... -print0 \) är ganska vanlig.
Tanken här är att uttrycket före -prune matchar
saker som ska beskäras. Men åtgärden -beskär
själv returnerar sant, så följande -o säkerställer att
höger sida utvärderas endast för dessa kataloger
som inte beskärs (innehållet i beskärningen
kataloger besöks inte ens, så deras innehåll är det
irrelevant). Uttrycket på höger sida av
-o står inom parentes endast för tydlighetens skull. Det understryker det
åtgärden -print0 äger rum endast för saker som inte gjorde det
har -prune applicerat på dem. Eftersom standard "och"
tillstånd mellan testerna binder hårdare än -o , detta
är standard ändå, men parenteserna hjälper till att visa
vad händer.
• Med tanke på följande katalog över projekt och deras
associerade SCM administrativa kataloger, utföra en
effektivt söka efter projektens rötter:
$ hitta repo/ \
\( -exec test -d '{}/.svn' \; \
-eller -exec test -d '{}/.git' \; \
-eller -exec test -d '{}/ CVS' \; \
\) -print -prune
Exempelutgång:
repo/project1/CVS
repo/gnu/project2/.svn
repo/gnu/project3/.svn
repo/gnu/project3/src/.svn
repo/project4/.git
I det här exemplet förhindrar -prune onödig nedstigning till
kataloger som redan har upptäckts (till exempel
vi söker inte i project3/src eftersom vi redan hittat
project3/.svn ), men ser till att syskonkataloger ( project2
och project3 ) hittas.
Andra användbara exempel
• Sök efter flera filtyper.
$ hitta /tmp -typ f,d,l
Sök efter filer, kataloger och symboliska länkar i
katalogen /tmp skickar dessa typer som kommaseparerade
list (GNU-tillägg), som annars motsvarar
längre, men ändå mer bärbar:
$ hitta /tmp \( -typ f -o -typ d -o -typ l \)
• Sök efter filer med det speciella namnet nål och stoppa
direkt när vi hittar den första.
$ hitta / -namn nål -print -quit
• Demonstrera tolkningen av formaten %f och %h
direktiv från -printf- åtgärden för vissa hörnfall.
Här är ett exempel inklusive en del utdata.
$ hitta. .. / /tmp /tmp/TRACE kompilera compile/64/tests/find -maxdepth 0 -printf '[%h][%f]\n' [.][.] [.][..]
[
]
[ /]
[][tmp]
[/tmp][TRACE]
[.][compile]
[compile/64/tests][find]
EXIT STATUS topp
hitta utgångar med status 0 om alla filer bearbetas framgångsrikt,
större än 0 om fel uppstår. Detta är medvetet en mycket
bred beskrivning, men om returvärdet inte är noll, du
bör inte förlita sig på riktigheten av resultaten av hitta .
När något fel uppstår kan sökning stoppas omedelbart, utan
slutföra alla angivna åtgärder. Till exempel några startande
poäng kanske inte har granskats eller något pågående program
anrop för -exec ... {} + eller -execdir ... {} + kanske inte har
utförts.
HISTORIA topp
Ett sökprogram dök upp i version 5 Unix som en del av
Programmerarens Workbench-projekt och skrevs av Dick Haight.
Doug McIlroy's A Research UNIX Reader: Annotated Excerpts from
the Programmer's Manual, 1971-1986 ger några ytterligare
detaljer; du kan läsa den online på
< https://www.cs.dartmouth.edu/~doug/reader.pdf >.
GNU -fynd skrevs ursprungligen av Eric Decker, med förbättringar
av David MacKenzie, Jay Plett och Tim Wood. Idén till find
-print0 och xargs -0 kom från Dan Bernstein.
KOMPATIBILITET topp
Från och med findutils-4.2.2, skalmetatecken (`*', `?' eller `[]' för
exempel) som används i filnamnsmönster matchar en ledande `.', eftersom
IEEE POSIX-tolkning 126 kräver detta.
Från och med findutils-4.3.3 matchar nu -perm /000 alla filer istället
av ingen.
Nanosekund-upplösning tidsstämplar implementerades i
findutils-4.3.3.
Från och med findutils-4.3.11, anger åtgärdsuppsättningarna -delete find 's exit
status till ett värde som inte är noll när det misslyckas. Hitta kommer dock inte
gå ut omedelbart. Tidigare påverkades Finds utgångsstatus opåverkadgenom att -delete
misslyckades .
Funktion tillagd i Förekommer också i
-filer0-från 4.9.0
-newerXY 4.3.3 BSD
-D 4.3.1
-O 4.3.1
-läsbar 4.3.0
-skrivbar 4.3.0
-körbar 4.3.0
-regextyp 4.2.24
-exec ... + 4.2.12 POSIX
-execdir 4.2.12 BSD
-okdir 4.2.12
-sammafil 4.2.11
-H 4.2.5 POSIX
-L 4.2.5 POSIX
-P 4.2.5 BSD
-radera 4.2.3
-sluta 4.2.3
-d 4.2.3 BSD
-helnamn 4.2.0
-wholename 4.2.0
-ignore_readdir_race 4.2.0
-fls 4.0
-ilname 3.8
-iname 3.8
-ipath 3.8
-iregex 3.8
Syntaxen -perm +MODE togs bort i findutils-4.5.12, till förmån
av -perm /MODE . +MODE- syntaxen hade fasats ut sedan dess
findutils-4.2.21 som släpptes 2005.
ICKE-BUGS
Operatörsprioritet överraskar
Kommandot hitta . -name afile -o -name bfile -print kommer aldrig
print afile eftersom detta faktiskt motsvarar hitta . -name
afile -o \( -name bfile -a -print \) . Kom ihåg att
företräde för -a är högre än för -o och när det finns nej
operatör specificerad mellan testerna, -a antas.
"sökvägar måste föregå uttryck" felmeddelande
$ hitta . -namn *.c -print
hitta: sökvägar måste föregå uttryck
hitta: möjligt mönster utan citat efter predikatet `-name'?
Detta händer när skalet kunde utöka mönstret *.c till mer
än ett filnamn som finns i den aktuella katalogen och passerar
de resulterande filnamnen på kommandoraden för att hitta så här:
find . -name frcode.c locate.c word_io.c -print
Det kommandot kommer naturligtvis inte att fungera, eftersom -name
predikat tillåter exakt ett mönster som argument. Istället
av att göra saker på det här sättet, bör du bifoga mönstret i
citat eller undkomma jokertecknet, vilket gör det möjligt för find att använda
mönster med jokertecken under sökningen efter filnamn
matchande istället för filnamn utökade med det överordnade skalet:
$ hitta. -namn '*.c' -print
$ hitta . -namn \*.c -print
BUGS
Det finns säkerhetsproblem i beteendet som
POSIX-standarden anger för find , vilket därför inte kan vara det
fast. Till exempel är åtgärden -exec i sig osäker, och
-execdir bör användas istället.
Miljövariabeln LC_COLLATE har ingen effekt på -ok
handling.
RAPPORTERING AV BUGGAR
GNU findutils onlinehjälp:
< https://www.gnu.org/software/findutils/#get-help >
Rapportera eventuella översättningsfel till
< https://translationproject.org/team/ >
Rapportera alla andra problem via formuläret i GNU Savannah-felet
spårare:
< https://savannah.gnu.org/bugs/?group=findutils >
Allmänna ämnen om GNU findutils-paketet diskuteras påe-postlistan
bug -findutils :
< https://lists.gnu.org/mailman/listinfo/bug-findutils >
COPYRIGHT topp
Copyright © 1990-2023 Free Software Foundation, Inc. Licens
GPLv3+: GNU GPL version 3 eller senare
< https://gnu.org/licenses/gpl.html >.
Detta är fri programvara: du är fri att ändra och distribuera om
Det. Det finns INGEN GARANTI, i den utsträckning som lagen tillåter.
SE ÄVEN toppen
chmod(1) , locate(1) , ls(1) , updatedb(1) , xargs(1) , lstat(2) ,
stat(2) , ctime(3) fnmatch(3) , printf(3) , strftime (3) ,
lokaliserad (5), regex(7)
Fullständig dokumentation < https://www.gnu.org/software/findutils/find > eller tillgänglig lokalt via: info hitta
KOLOFON
Den här sidan är en del av findutils -projektet (hitta verktyg).
Information om projektet finns på
⟨ http://www.gnu.org/software/findutils/ ⟩. Om du har en bugg
rapport för denna manualsida, se
⟨ https://savannah.gnu.org/bugs/?group=findutils ⟩. Den här sidan var
hämtat från projektets uppströms Git-förråd
⟨git://git.savannah.gnu.org/findutils.git⟩ den 2023-06-23. (På
den tiden, datumet för det senaste begåvningen som hittades i
förvaret var 2023-05-23.)