ファイル名の一部に基づいて現在のフォルダとサブフォルダのファイルを検索することがよくあります。この場合、find + grep
ただfind
。例えば
find . | grep user #19 chars typed
find でのみ作成できます。
find . -path "user*" #21 chars typed
ファイルを見つけるために設計されたコマンドを使用するとき、より多くの文字を入力し、それらの2つを組み合わせて使用するのは少し愚かな感じです。
文字入力時にfindだけをより効率的にする方法はありますか?
ベストアンサー1
はい、
ff () {
find . -path "*$1*"
}
関数は次のように呼び出されます。
ff user
そして、与えられた文字列を含む現在のディレクトリ内または下のすべてのパス名(ファイル、ディレクトリなど)を返します。
~/.bashrc
関数定義はファイル(またはシェルで使用されている対応するシェル初期化ファイル)に入る必要があり、次に開始する対話型シェルで使用できます。
次のバリエーションは、パス名のファイル名部分のみを考慮します。
ff () {
find . -name "*$1*"
}
結果を次に制限する場合一般ファイルをクリックしてから通話-type f
に追加します。find
ff () {
find . -type f -name "*$1*"
}
コマンドに注意してください。
find . -path "user*"
何も出力されません。これは、考慮されるすべてのパス名がで始まるためです.
。
最後の警告:私はこれがインタラクティブに使用されると仮定しています。目到着バラより結果から。これをスクリプトで使用したり、関数から返されたファイル名に対して反復を実行したい場合検索結果を繰り返すのはなぜ悪い習慣ですか?」。