「find」コマンドのみを使用して「dmesg」を実行する方法は? [閉鎖]

「find」コマンドのみを使用して「dmesg」を実行する方法は? [閉鎖]

dmesg私の研究室の課題の1つで「コマンドでのみ実行」する必要がありますfind

私は見つけようとしましたが、何も見つかりません。それはおそらくそれが使われるべき方法ではないからです。

答え1

find $(which find) -exec dmesg \;

これが解決策でなければなりません。$(which find)存在すると確信しているファイルのパスに置き換えることができます。提供されたコマンドは、見つかった各ファイルに対してfind(私たちの場合は一度だけ)実行されます。-exec

答え2

単一のコマンドを実行することはfindできることですが、決して行うことはできません。役に立たない機械を見つけるのに似ています。YouTubeの動画

標準では、次のコマンドを使用して実行findできます。dmesg

find . -prune -exec dmesg \;

このコマンドは、現在のディレクトリでusingをfind実行し、現在のディレクトリから何も検索しないようにuseを使用しようとします。dmesgこれ以上ナビゲートするコンテンツがない場合は終了します。-exec-prunefind

findこのコマンドは、存在する必要があるパスに加えて、私たちが提供する検索パスには依存しません。また、現在のユーザーが実行できるdmesgdmesgどうかに関係なく、このコマンドはコマンドラインから直接実行されるかのようにユーティリティを$PATH実行します。dmesg

答え3

コメントに書かれた内容で見ると、正しい答えは次のとおりです。find / -name dmesg -type f -executable -exec {} \;

関連情報