したくない株式会社2Mioより大きいファイルを検索します。
agコマンドの--file-sizeフラグのようなものが見つかりませんが、それを知る方法はありますか?
たくさん手に入れる
ERR: Skipping foo.bar: pcre_exec() can't handle files larger than 2147483647 bytes.
答え1
zsh
さらに、他のコマンドと組み合わせて使用すると、ag
次のことができます。
ag -- pattern **/*(.LM-3)
サイズが2MiB以下の**/
一般ファイル()を(再帰的に)表示するには(整数ebiバイトに丸められた長さは()より厳密に小さい).
L
L
M
-
3
これは隠されたファイルを除外しますが、 files と co と一致するファイルの場合ag
、 files と co と一致するファイルは.ignore
文字通り渡されると除外されません。
GNUシステムのbashまたは他のKornに似たシェルでは、常に次のことを行う関数またはスクリプトを使用できます。
ag_in_small_non_hidden_files() {
xargs -r0a <(
LC_ALL=C find . -name '.?*' -prune -o -type f -size -3M -print0
) ag "$@"
}
同等の操作を実行します(ファイルリストはソートされませんが、ファイルag
リストはデフォルトでは再ソートされません。リストをソートするには常にfind
出力をパイプできます)。sort -z
答え2
2GiB以上のファイルを事前スキャンして、検索している.ignore
ディレクトリ構造に書き込むことができます。
例えば
find . -size "+$(( 2 * 1024 * 1024 * 1024 - 1 ))c" > .ignore
改行、ワイルドカード、バックスラッシュ、引用符、末尾のスペースなど、トリガーが含まれているファイルには警告が適用されます。
2MiBより厳密に大きいファイルの場合に使用できますfind
GNUを含むいくつかの実装を報告するファイルサイズは1MiB以下です。find
find . -size +2M
-size -2M