多くの場合、コマンドを使用してファイルを見つけた後、ファイルを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 "`
`"