Encontré un comando en el script Bash en el que encontré:
find /var/log/abcd -type f
El comando anterior fue en el contexto de la limpieza de los archivos de registro. Se lo que find
hace.
Después de haberlo visto -type f
, busqué en la página del manual. Tengo que verlo en la página de manual de BASH_BUILTINS (1)
La descripción de la bandera -f bajo type
comando es: -
The -f option suppresses shell function lookup, as with the command builtin.
Las siguientes son mis preguntas:
- ¿De qué sirve
type
? - ¿Cuál es el significado de la
-f
bandera? - ¿De qué sirve usar
type
con elfind
comando?
[EDIT]: - Después de haber leído todos los comentarios y respuestas hasta ahora, me gustaría hablar de la causa de la mala interpretación de mi -type option in command find
Vs type command
. Todo esto sucedió porque estaba asumiendo y hasta la fecha solo he visto las opciones cortas (Pruebas en el caso del find
comando) con un solo signo menos '-' , por ejemplo ls -l
,. La mayoría de las veces he visto opciones largas con doble signo menos '-' , por ejemplo ls --version
,.
fuente
type
comando incorporado no es utilizado porfind
. La-type
opción defind
hacer otra cosa. Veahelp type
yman find
para obtener sus respuestas.Respuestas:
En este caso
type
no tiene nada que ver con el bash incorporadotype
, sino más adelante.Un poco sobre "tipo"
El
type
comando incorporado BASH le brinda información sobre los comandos. Así:La sintaxis es:
-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
ycat
como ejemplo:Ahora, esto especifica que si está en un shell Bash y escribe
time some_cmd
,time
se usa bash builtin . Para usar el sistematime
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
.y luego usar
$tt
para llamar al sistematime
.El comando en cuestión
En este caso,
-type
es una opción para el comandofind
. La opción toma un argumento de por el cual se especifica el tipo de entidad. EjemploHay más, verifique
man find
el resto.Para buscar la opción específica que puede hacer (mientras está en el hombre):
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:
En una especificación de comando, los corchetes se usan para especificar opciones y, opcionalmente, menor / mayor que, se usan para especificar argumentos. Así:
Da
-a
-b
y-s
como parámetros opcionales, yfile
uno requerido.-t
es opcional, pero si se especifica toma el argumento requeridobar
. Los puntos representan que puede tomar varios archivos.Esta no es una especificación exacta, y a menudo
man
ohelp
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:
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 propiedadman 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:El
-exec
es uno especial donde se-exec some_command {} \;
dan todos los parámetrosfind
, pero lasome_command {} \;
parte se expande, dentrofind
desome_command string_of_found_entity
.Más allá
Puede encontrar esto útil .
fuente
Debes mirar adentro
man find
, no adentrohelp type
oman bash
.type
enfind
especificará qué tipo de archivo necesita:Y
type
construir es algo completamente diferente y NO es el que se usa en el interiorfind
.fuente
Buscaste en la página del manual equivocada, este no es el
type -f
comando, pero lafind -type f
opción es bastante diferente, mira elfind
manual para obtener explicaciones adecuadas.fuente
-type f
le dice a find que solo imprima archivos de tipo f, es decir, archivos simples, no directorios, no enlaces simbólicos y no archivos de dispositivo.man find
luego busque la-f
opción.fuente
Esta no es la página de manual correcta que estás viendo. Deberías estar usando
eso le dirá que con
-type f
el-type
predicado selecciona solo los archivos normales.fuente