Nesse caso, type não tem nada a ver com o bash type embutido, mas mais sobre isso depois.
Um pouco sobre "tipo"
O comando type do BASH fornece informações sobre comandos. Assim:
$ type type
type is a shell builtin
A sintaxe é:
type [-tap] [name ...]
-
-t: imprime somente o tipo, se encontrado -
-a: imprime todas as ocorrências do comando, internas e outras. -
-p: imprime o arquivo do disco que seria executado na chamada para o comando ou nada.
Se olharmos para time , kill e cat como exemplo:
$ 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
Agora, especifique que, se você estiver em um shell Bash e digitar time some_cmd , o bash builtin time será usado. Para usar o sistema time você pode fazer /usr/bin/time some_cmd .
Uma maneira freqüentemente usada para garantir que o comando do sistema, e não interno, seja usado é usando which .
tt=$(which time)
e, em seguida, use $tt para chamar o sistema time .
O comando em questão
Nesse caso, o -type é uma opção para o comando find . A opção aceita um argumento pelo qual especifica o tipo de entidade. Exemplo
find . -type f # File
find . -type d # Directory
Há mais, confira man find para o resto.
Para procurar a opção específica que você pode fazer (enquanto no homem):
/^\s*-typeEnter
Em seguida, use n para seguinte até encontrá-lo.
Um pouco sobre o comando shell
Esta é uma interpretação pessoal.
Algumas das coisas que vale a pena mencionar, neste caso específico, são comandos, opções, argumentos e canais.
Isso é usado de forma um pouco frouxa, mas no meu vocabulário temos em resumo:
- comando: um programa ou integrado .
- parâmetro: uma entidade após a palavra de comando. Opção
- : um parâmetro opcional .
- argumento: um parâmetro obrigatório.
Em uma especificação de comando, colchetes são usados para especificar opções e, opcionalmente, menor ou maior que, usado para especificar argumentos. Assim:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Concede -a -b e -s como parâmetros opcionais e file como obrigatório.
-t é opcional, mas, se especificado, aceita o argumento necessário bar . Os pontos representam que pode levar vários arquivos.
Esta não é uma especificação exata e, geralmente, man ou help é necessário para ter certeza.
O posicionamento de opções de argumentos e entrada muitas vezes pode ser confundido, mas geralmente é melhor manter uma abordagem baseada em posição, já que alguns sistemas não manipulam posicionamento misto de argumentos. Como exemplo:
chmod -R nick 722 foo
chmod nick 722 foo -R
Ambos trabalham em alguns sistemas, enquanto o segundo não em outro.
Em seu comando exato, todos os parâmetros pertencem a find - assim, se você quer saber sobre uma propriedade man find é o lugar correto para procurar. Nos casos em que você precisa consultar as páginas do manual para o shell, etc., pode estar em, por exemplo:
find . $(some command)
find . 'some command'
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
O -exec é especial onde -exec some_command {} \; são todos os parâmetros fornecidos para find , mas a some_command {} \; é expandida, dentro de find a some_command string_of_found_entity .
Mais adiante
- citando
- expansão
- substituição de comandos
- e muito mais