findの省略形

findの省略形

およびfindに類似したものに代わるものはありますか?agack

入力するのは本当に疲れます:

find some/app -iname "some_file*"

私は次のように入力する方がずっと好きです:

find "some_file*"

そして、現在のフォルダーを検索し、すべてのサブフォルダーを再帰的に検索します。

答え1

関数やスクリプトはそのためにあるのです。例:

myfind() {
    search="$1"
    shift
    find . -iname "$search" "$@"
}

末尾のを"$@"使用すると、必要に応じて他の検索オプションを指定できます。ただし、find一部のオプションの順序は非常に厳しく、一部のオプションはパスの前 (.この場合は ) に来る場合にのみ機能します。

find非オプションの議論を続けていると不平を言う人もいます。

例えば、find . -iname "*.txt" -maxdepth 1次のような不満が生じます。

find: 警告: オプション以外の引数 -iname の後に -maxdepth オプションを指定しましたが、オプションは位置指定ではありません (-maxdepth は、その前に指定されたテストと、その後に指定されたテストの両方に影響します)。他の引数の前にオプションを指定してください。

私の知る限り、これらの警告をオフにするオプションはありません...または、あったとしても、またはと呼ばれませ--quiet--silent

とにかく、上記の関数をテキスト ファイルに保存します (例: ) myfind.txt。次に、次のようにソースします。

. myfind.txt

ログインごとに定義したい場合は、関数定義を または~/.profile~/.bash_profileまたはmyfind.txtのソースに追加します。

shこれは、または のような Bourne シェルを使用していることを前提としています。bashの一部のバージョンでは、 の前にshキーワードが必要な場合があることに注意してください(例: ) 。または を使用している場合は、Bourne シェルに切り替えてください。functionmyfindfunction myfind() { ... }cshtcsh

関連情報