script.sh
という名前のスクリプトがあります。ファイルシステムのどこにあるかはわかりませんが、存在することはわかります。
スクリプトを見つけて実行可能にして、コマンドラインから1行で実行するにはどうすればよいですか。
単一のコマンドで実行したいと思います。検索して実行可能にし、実行します。
家でfind
コマンドを使用してください:
find ~ -name script.sh
上記で何も見つからなかった場合は、F/S全体でfind
コマンドを使用します。
find / -name script.sh 2>/dev/null
(2>/dev/null
を使用すると、不必要なエラーが表示されなくなります)。
それを起動します。
/<whatever_the_path_was>/script.sh
そして、すべて一度に与えるでしょう。 検索と実行の詳細 :
find / -name "script.sh" -exec chmod +x {} \; -exec {} \; 2>/dev/null
(複数の "script.sh
"、それらすべてを実行します)
ファイルシステム上にまったく同じものと呼ばれるスクリプトがいくつかある場合があるため、名前に基づいてスクリプトを特定し、それを盲目的に実行することは、おそらく非常に悪い考えです。
それを見つけるには、質問の別の回答でJ. Chomelが示したようにfind
を使用するか、locate
を使用します。
$ locate script.sh
これにより、システムのデータベース検索に基づいて、すべてのユーザーが読み取り可能な場所にscript.sh
というすべてのファイルが見つかります。データベースは定期的に(設定に応じて毎日または週に1回)更新されるため、最後のファイルシステムスキャン以降に追加されたファイルは見つかりませんが、find
よりもはるかに高速です。 。
select
を使用してメニューを生成し、そこから正しいスクリプトを選択して実行できます。
$ select script in $( locate script.sh ); do echo "$script"; break; done
名前を出力するだけでなく、選択したスクリプトを実際に実行するには、echo
をcommand
に変更します。