検索コマンドを使用して検索したファイルを開く

検索コマンドを使用して検索したファイルを開く

たぶん簡単な質問かもしれませんが、見つけることができず、検索もほとんど不可能です。フォルダ階層には xyz タイプのファイルが 1 つしかありません。ファイルを見つけてターミナルコマンドを使って開きたいです。

find . -name *.xyz

これにより、私が探しているファイルが返されます。では、名前を入力せずに自動的に開くことができますか?

find . -name *xyz | open

これはうまくいきません。 openコマンドが見つかりませんでした。

答え1

@retracile そうなんですね。それを開くには「何か」が必要です。しかし、私はxargsの代わりにexecを使用することを好みます。

find . -name '*.xyz' -exec cat {} \;

これにより背面が返されますcat fileFound.xyz; cat fileFound2.xyx;。ただし、ファイルを1つだけ見つけようとします。

状況に応じてに変更すると返さ\;れ、後者がより優先される可能性があります。+cat fileFound.xyz fileFound2.xyz

これについての詳細はご案内いたします。この問題

答え2

ファイルを開くには、どのプログラムを使用する必要があるかを知る必要があります。画像なら gwenview などを使用できます。

xargs を使用して入力を受け取り、引数に変換します。そしてそのワイルドカードをエスケープする必要があります...

find . -name \*xyz | xargs gwenview

ファイル名のスペースを処理します...

find . -name \*xyz | xargs -d"\n" gwenview

答え3

あなたが探しているコマンドは次のとおりですxdg-open

次のコマンドを試してください。

xdg-open "$(find . -name '*xyz' | head -n1)"

答え4

find単一のvimインスタンスで別々のタブにあるすべてのファイルを開くには、次の手順を実行します。

find . -name \*xyz | xargs vim -p

関連情報