Provavelmente é fácil, mas não consigo entender e praticamente não é pesquisável. Em uma hierarquia de pastas, tenho exatamente um arquivo do tipo xyz. Eu quero encontrar esse arquivo e abri-lo com um comando terminal.
find . -name *.xyz
Isso retornará o arquivo que estou procurando. Agora, como abro-o automaticamente, sem digitar o nome?
find . -name *xyz | open
Isso não funciona. Ele diz que não encontrou o comando aberto.
Respostas:
@retracile está correto. Você precisa abri-lo com 'alguma coisa'. No entanto, eu prefiro usar exec sobre xargs.
find . -name '*.xyz' -exec cat {} \;
isso retornará
cat fileFound.xyz; cat fileFound2.xyx;
etc. No entanto, você espera encontrar apenas um arquivo.observe que a mudança
\;
para+
retornará,cat fileFound.xyz fileFound2.xyz
dependendo do caso, a posterior talvez a escolha preferida.para saber mais sobre isso, diria a você esta pergunta
fonte
O comando que você está procurando é chamado
xdg-open
Tente seu comando com ele:
fonte
Você precisa saber qual o programa que deseja usar para abrir o arquivo. Se for uma imagem, você pode usar gwenview ou algo assim.
Receber e transformá-lo em argumentos é feito com xargs. E você vai querer escapar desse curinga ...
E para lidar com espaços em nomes de arquivos ....
fonte
Como outros já apontaram, sua pergunta não é suficientemente específica para responder com clareza. Portanto, adivinhando outro significado possível: Se você quer executá-lo como executável, (o que significa que seu programa é executável), diga ao shell que deseja substituir a saída do comando find como parte da linha de comando :
fonte
Se você quiser abrir todos os arquivos encontrados
find
em guias separadas em uma única instância do vim, faça o seguinte:fonte