¿Por qué find . | cat
funciona (imprimir todos los nombres de los archivos) pero find . | file -i
no funciona para mostrar todos los tipos de archivos MIME?
¿No debería funcionar ya que hay una salida find .
y una entrada file -i
?
(Lo siento si esta es una pregunta estúpida, soy un principiante en el uso de bash y no pude encontrar otra pregunta que pudiera explicarme esto)
Respuesta1
Con una tubería, el comando del lado derecho lee los datos en su canal estándar. El file
comando requiere que los archivos sean argumentos de línea de comando, no datos en la entrada estándar.
Esto es exactamente para lo que xargs
sirve el comando: leer desde la entrada estándar y proporcionar los datos como argumentos de la línea de comando:
find . | xargs file -i
O, utilice la -f
opción para file
:
find . | file -i -f -
Lea las páginas del manual para obtener más detalles.