Ik heb deze opdracht uitgevoerd:
find /home/ ~ -type f -size 5 "*." -a -30
maar het zei find: paths must precede expression
. Ik vind het moeilijk om find
te laten zoeken naar overeenkomsten in zowel de huidige map als de submappen ervan. Wat betekent deze fout en hoe kan ik de overeenkomsten krijgen uit zowel de huidige map als de submappen?
Antwoord
Als je lijkt het te begrijpen, je kunt meerdere startpunten specificeren voor find
; bijv.
find dir1 dir2 dir3 -type f … (other arguments) …
Maar uw "*."
en -30
zijn geen geldige zoek- / actietermen, dus find
denkt dat u “meer startpunten opgeeft na de -type f
. Misschien bedoelt u -name "*."
en -mtime -30
?
PS -name "*."
komen overeen met alle namen die eindigen op een punt ( .
), ook bekend als punt of punt. Hoewel dit geldig is, zou dat een vrij ongebruikelijk patroon zijn; is het echt wat je bedoelt?
PPS Als je homedirectory (vertegenwoordigd door ~
) onder /home
staat, dan uw commando is overbodig, aangezien het tweemaal in uw homedirectory zal zoeken.