検索で見つかったファイルにアクセスする

検索で見つかったファイルにアクセスする

多くの場合、コマンドを使用してファイルを見つけた後、ファイルをfind開いたり、キャプチャしたり、印刷したりします。検索結果をどのように処理しますか?例えば、

: find . -name "myfile.txt"
./docs/myfile.txt

: find . -name "myfile.txt" | less

指定されたパスのファイルの内容の代わりに文字列 "./docs/myfile.txt"を少なく提供するため、機能しません。

答え1

@coffeeMugと同様に、これは間違いなくより速いので、新しいアプローチです。

find . -name "*.log" -exec ls -l '{}' +

私もあなたに指摘します。コマンドラインプー、常にこのようなことに役立ちます。

答え2

less $(find . -name myfile.txt)

less `find . -name myfile.txt`

最初はPOSIXと互換性があり、入れ子になっていると思います。私の考えでは、2番目のものはより携帯性が良いと思います。

答え3

-execこれを達成するために、findのフラグを使用することができます。

find . -name "*.log" -exec ls -l '{}' \;

この例では、findは現在のディレクトリのすべてのログファイルを検索し、findを使用してそのファイルを一覧表示しますls -l。あなたの場合は、lsマニュアルlessページのACTIONセクションを見つけるためにここを参照してください。(1) マニュアルページを探す

答え4

前のコマンドの出力を自動的に取得する方法はありません(通常の状況では除く)。ただし、マウスで出力を手動で選択すると、次のことができます。

less `xsel`

または、出力にスペースまたはワイルドカードが含まれていてzshを実行しない場合、

less "`xsel`"

コマンドを再実行しても問題ない場合は、Up行の始まりと終わり(またはbashまたはkshの行の開始と空白)でaddを押してから追加します。less ``less "``"

関連情報