Uruchomiłem to polecenie:
find /home/ ~ -type f -size 5 "*." -a -30
ale powiedział find: paths must precede expression
. Mam trudności ze znalezieniem zgodności find
w bieżącym katalogu, a także w jego podkatalogach. Co oznacza ten błąd i jak mogę uzyskać dopasowania zarówno z bieżącego katalogu, jak i jego podkatalogów?
Odpowiedź
Jak wydaje się, że rozumiesz, możesz określić wiele punktów początkowych dla find
; np.
find dir1 dir2 dir3 -type f … (other arguments) …
Ale Twoje "*."
i -30
nie są prawidłowymi wyszukiwanymi hasłami / działaniami, więc find
uważa, że „podajesz więcej punktów początkowych po -type f
. Może masz na myśli -name "*."
a -mtime -30
?
PS -name "*."
spowoduje dopasowanie wszystkich nazw kończących się kropką ( .
), czyli kropka lub kropka. Chociaż prawidłowy, byłby to dość nietypowy wzorzec; jest to naprawdę co masz na myśli?
PPS Jeśli Twój katalog domowy (reprezentowany przez ~
) znajduje się pod /home
, to Twoje polecenie jest zbędne, ponieważ dwukrotnie przeszuka Twój katalog domowy.