Nesse caso type
, não tem nada a ver com o bash embutido type
, mas mais sobre isso mais tarde.
Um pouco sobre "tipo"
O type
comando interno do BASH fornece informações sobre comandos. Portanto:
$ type type
type is a shell builtin
A sintaxe é:
type [-tap] [name ...]
-t
: imprime apenas 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 ao comando ou nada.
Se olharmos time
, kill
e cat
como um 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, isso especifica que, se você estiver em um shell e tipo Bash time some_cmd
, o bash builtin time
será usado. Para usar o sistema, time
você pode fazer /usr/bin/time some_cmd
.
Uma maneira frequentemente usada para garantir que o comando do sistema, e não interno, seja usado é usando which
.
tt=$(which time)
e use $tt
para chamar o sistema time
.
O comando em questão
Nesse caso, -type
é uma opção para o comando find
. A opção utiliza um argumento pelo qual especificar o tipo de entidade. Exemplo
find . -type f # File
find . -type d # Directory
Há mais, verifique man find
o resto.
Para procurar a opção específica que você pode fazer (enquanto no homem):
/ ^ \ s * -typeEnter
Em seguida, use n
para o próximo até encontrá-lo.
Um pouco sobre o comando shell
Isso é um pouco de interpretação pessoal.
Algumas das coisas que vale a pena mencionar, neste caso específico, são comandos, opções, argumentos e canais.
Isso é pouco utilizado, mas no meu vocabulário temos resumidamente:
- comando: um programa ou embutido .
- parâmetro: uma entidade após a palavra de comando.
- opção: um parâmetro opcional .
- argumento: um parâmetro necessário.
Em uma especificação de comando, colchetes são usados para especificar opções e, opcionalmente menor / maior, usados para especificar argumentos. Portanto:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Fornece -a
-b
e -s
como parâmetros opcionais, e file
um obrigatório.
-t
é opcional, mas se especificado recebe o argumento necessário bar
. Pontos representam que pode levar vários arquivos.
Essa não é uma especificação exata e, com frequência man
ou help
é necessária para garantir.
Opções de posicionamento de argumentos e entrada muitas vezes podem ser confusas, mas geralmente é melhor manter uma abordagem baseada em posição, pois alguns sistemas não lidam com posicionamento misto de argumentos. Como um exemplo:
chmod -R nick 722 foo
chmod nick 722 foo -R
Ambos trabalham em alguns sistemas, enquanto o último não em outros.
No seu comando exato, todos os parâmetros pertencem find
- portanto, se você se perguntar sobre uma propriedade, man find
é o local correto para procurar. Nos casos em que você precisa consultar as páginas de manual do shell, etc., por exemplo:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
O -exec
é um especial onde -exec some_command {} \;
são fornecidos todos os parâmetros find
, mas a some_command {} \;
peça é expandida, dentro find
de some_command string_of_found_entity
.
Mais para frente
- citando
- expansão
- substituição de comando
- e muito mais
Você pode achar isso útil .
type
comando interno não é usado porfind
. A-type
opção defind
fazer outra coisa. Vejahelp type
eman find
obtenha suas respostas.