In questo caso type
non ha nulla a che fare con il bash incorporatotype
, ma ne parleremo più avanti.
Un po 'di "tipo"
Il type
comando integrato BASH fornisce informazioni sui comandi. Così:
$ type type
type is a shell builtin
La sintassi è:
type [-tap] [name ...]
-t
: stampa solo il tipo, se trovato
-a
: stampa tutte le occorrenze del comando, sia incorporato che altro.
-p
: stampa il file del disco che verrebbe eseguito su chiamata al comando o niente.
Se guardiamo time
, kill
e cat
come esempio:
$ type time kill cat
time is a shell keyword
kill is a shell builtin
cat is /bin/cat
$ type -t time kill cat
keyword
builtin
file
$ type -a time kill cat
time is a shell keyword
time is /usr/bin/time
kill is a shell builtin
kill is /bin/kill
cat is /bin/cat
$ type -ta time kill cat
keyword
file
builtin
file
file
Ora, questo specifica che se ci si trova in una shell Bash e si digita time some_cmd
, time
viene utilizzato l'integrato bash . Per usare il sistema time
puoi farlo/usr/bin/time some_cmd
.
Un modo spesso usato per assicurare che il sistema, e non il comando incorporato, sia usato è usando which
.
tt=$(which time)
e quindi utilizzare $tt
per chiamare il sistema time
.
Il comando in questione
In questo caso -type
è un'opzione per il comando find
. L'opzione accetta un argomento in base al quale specificare il tipo di entità. Esempio
find . -type f # File
find . -type d # Directory
Ce ne sono altri, controlla man find
il resto.
Per cercare l'opzione specifica che puoi fare (mentre sei nell'uomo):
/ ^ \ S tipo *Enter
Quindi utilizzare n
per il prossimo fino a quando non lo si trova.
Un po 'di comando shell
Questa è un'interpretazione un po 'personale.
Alcune delle cose che vale la pena menzionare, in questo caso specifico, sono comandi, opzioni, argomenti e pipe.
Questo è un po 'vagamente usato, ma nel mio vocabolario abbiamo in breve:
- comando: un programma o incorporato .
- parametro: un'entità dopo la parola di comando.
- opzione: un opzionale parametro .
- argomento: un parametro richiesto.
In una specifica di comando le parentesi quadre vengono utilizzate per specificare le opzioni e, facoltativamente, minore / maggiore di allora, utilizzate per specificare gli argomenti. Così:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Fornisce -a
-b
e -s
come parametri opzionali e file
uno richiesto.
-t
è facoltativo, ma se specificato accetta l'argomento richiesto bar
. I punti indicano che possono essere necessari diversi file.
Questa non è una specifica esatta e spesso man
o help
è necessaria per essere sicuri.
Il posizionamento delle opzioni e l'input degli argomenti possono essere spesso confusi, ma in genere è meglio attenersi a un approccio basato sulla posizione poiché alcuni sistemi non gestiscono il posizionamento misto degli argomenti. Come esempio:
chmod -R nick 722 foo
chmod nick 722 foo -R
Entrambi funzionano su alcuni sistemi, mentre quest'ultimo non su altri.
Nel tuo comando esatto appartengono tutti i parametri find
, quindi se ti chiedi di una proprietà man find
è il posto giusto in cui cercare. Nei casi in cui è necessario consultare le pagine man per la shell ecc., Ad esempio:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
L' -exec
è uno speciale dove -exec some_command {} \;
sono tutti parametri forniti find
, ma la some_command {} \;
parte è espanso, all'interno find
di some_command string_of_found_entity
.
Più avanti
- citando
- espansione
- sostituzione del comando
- e molto di più
Potresti trovare questo utile .
type
comando incorporato non è utilizzato dafind
. L'-type
opzione perfind
fare qualcos'altro. Vedihelp type
eman find
per ottenere le tue risposte.