Spustil jsem tento příkaz:
find /home/ ~ -type f -size 5 "*." -a -30
ale ono řekl find: paths must precede expression
. Je pro mě těžké find
hledat shody v aktuálním adresáři i jeho podadresářích. Co tato chyba znamená a jak mohu získat shody z aktuálního adresáře i jeho podadresářů?
Odpověď
As Zdá se, že tomu rozumíte, můžete zadat více výchozích bodů pro find
; např.
find dir1 dir2 dir3 -type f … (other arguments) …
Ale vaše "*."
a -30
nejsou platné vyhledávací / akční výrazy, takže find
si myslí, že po -type f
poskytujete více výchozích bodů. Možná myslíte -name "*."
a -mtime -30
?
PS -name "*."
by odpovídalo všem jménům, která končí tečkou ( .
), neboli tečka nebo tečka. I když je to platné, byl by to docela neobvyklý vzor; je opravdu to máte na mysli?
PPS Pokud je váš domovský adresář (představovaný ~
) pod /home
, pak váš příkaz je nadbytečný, protože dvakrát prohledá váš domovský adresář.