Jeg kjørte denne kommandoen:
find /home/ ~ -type f -size 5 "*." -a -30
men det sa find: paths must precede expression
. Jeg har vanskelig for å få find
til å lete etter treff i den nåværende katalogen samt underkatalogene. Hva betyr denne feilen, og hvordan kan jeg få samsvarene fra både den nåværende katalogen og dens underkataloger?
Svar
Som du ser ut til å forstå, kan du spesifisere flere startpunkter for find
; f.eks.
find dir1 dir2 dir3 -type f … (other arguments) …
Men "*."
og -30
er ikke gyldige søke- / handlingsuttrykk, så find
tror du gir flere startpunkter etter -type f
. Kanskje du mener -name "*."
og -mtime -30
?
PS -name "*."
vil matche alle navn som slutter med en periode ( .
), også kjent som punktum eller punktum. Selv om det er gyldig, vil det være et ganske uvanlig mønster; er det virkelig hva du mener?
PPS Hvis hjemmekatalogen din (representert med ~
) er under /home
, så kommandoen din er overflødig, da den vil søke i hjemmekatalogen din to ganger.