Jeg kørte denne kommando:
find /home/ ~ -type f -size 5 "*." -a -30
men det sagde find: paths must precede expression
. Jeg har svært ved at få find
til at søge efter match i den aktuelle mappe såvel som dens underkataloger. Hvad betyder denne fejl, og hvordan kan jeg få matchene fra både den aktuelle mappe og dens underkataloger?
Svar
Som du synes at forstå, kan du angive flere startpunkter for find
; f.eks.
find dir1 dir2 dir3 -type f … (other arguments) …
Men din "*."
og -30
er ikke gyldige søge- / handlingsudtryk, så find
tror, du giver flere startpunkter efter -type f
. Måske mener du -name "*."
og -mtime -30
?
PS -name "*."
ville matche alle navne, der slutter med et punktum ( .
), aka prik eller punktum. Selvom det er gyldigt, ville det være et ret usædvanligt mønster; er det virkelig hvad du mener?
PPS Hvis din hjemmekatalog (repræsenteret af ~
) er under /home
din kommando er overflødig, da den søger i din hjemmekatalog to gange.