僕の使っているコマンドラインツールの #ひかえめなアドベントカレンダー2023 12月18日分はfindとxargsです。ファイルを見つけます。
findコマンドは第1引数に指定したディレクトリからディレクトリを辿って条件に合うファイルを標示してくれます。
$ find . -name '*.rb'
複数の条件を指定するとデフォルトでは論理積になります。例えばvendorディレクトリを除外する場合には論理和を明示する必要があります。
$ find . -name vendor -prune -or -name '*.rb'
ファイル名をコマンドライン引数にして渡す場合にはxargsにパイプします。
$ find . -name vendor -prune -or -name '*.rb' | xargs grep require_relative
ファイル名に空白文字が含まれる場合には、findやxargsにnil文字(\0)を区切り文字にしてもらいます。
$ find . -name vendor -prune -or -name '*.rb' -print0 | xargs -0 grep require_relative
find単体でもファイルの削除などをすることができますが、僕は念のためxargsにechoを渡して実行されるコマンドを目視確認してからechoを削除して実行することが多いです。
$ find . -name vendor -prune -or -name '*.rb~' -print0 | xargs -0 echo rm
それでも探しものが見つからないこともあるんだよね。それより僕と踊りませんか? (いいえ)