En este caso type
no tiene nada que ver con el bash incorporado type
, sino más adelante.
Un poco sobre "tipo"
El type
comando incorporado BASH le brinda información sobre los comandos. Así:
$ type type
type is a shell builtin
La sintaxis es:
type [-tap] [name ...]
-t
: solo tipo de impresión, si se encuentra
-a
: imprime todas las apariciones del comando, tanto incorporadas como otras.
-p
: imprime el archivo de disco que se ejecutará en la llamada al comando, o nada.
Si miramos time
, kill
y cat
como ejemplo:
$ 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
Ahora, esto especifica que si está en un shell Bash y escribe time some_cmd
, time
se usa bash builtin . Para usar el sistema time
que puedes hacer /usr/bin/time some_cmd
.
Una forma de uso frecuente para garantizar que se use el sistema, y no el comando incorporado, es mediante el uso which
.
tt=$(which time)
y luego usar $tt
para llamar al sistema time
.
El comando en cuestión
En este caso, -type
es una opción para el comando find
. La opción toma un argumento de por el cual se especifica el tipo de entidad. Ejemplo
find . -type f # File
find . -type d # Directory
Hay más, verifique man find
el resto.
Para buscar la opción específica que puede hacer (mientras está en el hombre):
/ ^ \ s * -tipoEnter
Luego use n
para el siguiente hasta que lo encuentre.
Un poco sobre el comando de shell
Esta es una interpretación un poco personal.
Algunas de las cosas que vale la pena mencionar, en este caso específico, son comandos, opciones, argumentos y canalizaciones.
Esto se usa de manera un tanto flexible, pero en mi vocabulario tenemos en resumen:
- comando: un programa o incorporado .
- parámetro: una entidad después de la palabra de comando.
- opción: un parámetro opcional .
- argumento: un parámetro requerido.
En una especificación de comando, los corchetes se usan para especificar opciones y, opcionalmente, menor / mayor que, se usan para especificar argumentos. Así:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Da -a
-b
y -s
como parámetros opcionales, y file
uno requerido.
-t
es opcional, pero si se especifica toma el argumento requerido bar
. Los puntos representan que puede tomar varios archivos.
Esta no es una especificación exacta, y a menudo man
o help
es necesaria para estar seguro.
El posicionamiento de las opciones de argumentos y la entrada a menudo se pueden mezclar, pero generalmente es mejor mantener un enfoque basado en la posición, ya que algunos sistemas no manejan el posicionamiento mixto de los argumentos. Como ejemplo:
chmod -R nick 722 foo
chmod nick 722 foo -R
Ambos funcionan en algunos sistemas, mientras que el último no en otros.
En su comando exacto, todos los parámetros pertenecen, por lo find
tanto, si se pregunta si una propiedad man find
es el lugar correcto para buscar. En los casos en los que necesita mirar las páginas del manual para el shell, etc. podría estar en, por ejemplo:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
El -exec
es uno especial donde se -exec some_command {} \;
dan todos los parámetros find
, pero la some_command {} \;
parte se expande, dentro find
de some_command string_of_found_entity
.
Más allá
- citando
- expansión
- sustitución de comando
- y mucho más
Puede encontrar esto útil .
type
comando incorporado no es utilizado porfind
. La-type
opción defind
hacer otra cosa. Veahelp type
yman find
para obtener sus respuestas.