Probablemente sea fácil, pero no puedo entenderlo y no se puede buscar. En una jerarquía de carpetas tengo exactamente un archivo de tipo xyz. Quiero encontrar ese archivo y abrirlo con un comando de terminal.
find . -name *.xyz
Esto devolverá el archivo que estoy buscando. Ahora, ¿cómo lo abro automáticamente, sin escribir el nombre?
find . -name *xyz | open
Esto no funciona Dice que no encontró el comando abierto.
Respuestas:
@retracile es correcto. Necesitas abrirlo con 'algo'. Sin embargo, prefiero usar exec sobre xargs.
find . -name '*.xyz' -exec cat {} \;
esto devolverá
cat fileFound.xyz; cat fileFound2.xyx;
etc., sin embargo, solo espera encontrar un archivo.tenga en cuenta que cambiar
\;
a+
volveríacat fileFound.xyz fileFound2.xyz
dependiendo del caso, la opción preferida más tarde.para más información sobre esto, le dirijo a esta pregunta
fuente
El comando que estás buscando se llama
xdg-open
Prueba tu comando con él:
fuente
Necesita saber qué programa desea usar para abrir el archivo. Si es una imagen, puede usar gwenview o algo así.
Tomar entrada y convertirla en argumentos se realiza con xargs. Y querrás escapar de ese comodín ...
Y para manejar espacios en nombres de archivos ...
fuente
Como otros han señalado, su pregunta no es lo suficientemente específica como para responderla claramente. Entonces, adivinando otro significado posible: si quiere decir que desea ejecutarlo como un ejecutable, (lo que significa que su programa es un ejecutable) dígale al shell que desea sustituir el resultado del comando find como parte de la línea de comando :
fuente
Si desea abrir todos los archivos encontrados
find
en pestañas separadas en una sola instancia de vim, puede hacer esto:fuente