a/
find .
mezzi, "trova (a partire nella directory corrente)." Se si desidera eseguire ricerche nell'intero sistema, utilizzare find /
; per la ricerca sotto /System/Library
, utilizzare find /System/Library
, ecc
b/
E 'più sicuro di utilizzare le virgolette singole intorno jolly. Se non ci sono file con nome *.JDK nella directory di lavoro quando si esegue questo, allora find
otterrà una riga di comando di:
find . -name *.jdk
Se, tuttavia, vi capita di avere file junk.jdk
e foo.jdk
nella directory corrente quando lo si esegue, find
sarà invece essere avviato con:
find . -name junk.jdk foo.jdk
... che (dato che ci sono due) lo confondono, e farla errore fuori. Se si elimina foo.jdk
e fare di nuovo la stessa identica cosa, devi avere
find . -name junk.jdk
... che non sarebbe mai trovare un file di nome (per esempio) 1.6.0.jdk
.
Ciò che probabilmente si desidera, in questo contesto, è
find /System -name '*.jdk'
... oppure, è possibile "fuga" del *
come:
find /System -name \*.jdk
@Prostak, questo mostrerà solo file regolari, non directory. '-type f' è quello di filtrare collegamenti simbolici, directory, dispositivi e così via. – BRFennPocock
Segnalo come risposta corretta. Ma grazie a tutti e due per il vostro aiuto! – Prostak