Jag körde det här kommandot:
find /home/ ~ -type f -size 5 "*." -a -30
men det sa find: paths must precede expression
. Jag har svårt att få find
att leta efter matchningar i den aktuella katalogen och dess underkataloger. Vad betyder detta fel och hur kan jag få matchningarna från både den aktuella katalogen och dess underkataloger?
Svar
Som du verkar förstå, du kan ange flera startpunkter för find
; t.ex.
find dir1 dir2 dir3 -type f … (other arguments) …
Men din "*."
och -30
är inte giltiga sök- / åtgärdstermer, så find
tror att du ger fler startpunkter efter -type f
. Kanske menar du -name "*."
och -mtime -30
?
PS -name "*."
skulle matcha alla namn som slutar med en punkt ( .
), aka punkt eller punkt. Även om det är giltigt skulle det vara ett ganska ovanligt mönster; är är det verkligen vad du menar?
PPS Om din hemkatalog (representerad av ~
) är under /home
ditt kommando är överflödigt eftersom det kommer att söka i din hemkatalog två gånger.