特定のフォルダで大きなファイルを検索するコマンドがありますが、何らかの理由で動作せず、「引数リストが長すぎます」というエラーが発生します。このコマンドが常に機能するように変更するにはどうすればよいですか?
jbsmith:/tmp$ sudo du -hsx * | sort -rh | head -10
-bash: /usr/bin/sudo: Argument list too long
ベストアンサー1
find
ワイルドカードの代わりにコマンドを次のように置き換えることができます。
sudo find . -maxdepth 1 ! -name "." -exec du -hsx {} + | sort -rh | head -10
あなたがfind
この+
表記法を支持すると仮定します。
これにより、詳細を見ることなく、現在のディレクトリの下のすべてのエントリを見つけることができ、「.」は無視されます。 (お知らせいただいた@rudimeierに感謝!)
これには、元のglobと同様に、現在のディレクトリ内のすべてのファイルが含まれます。 globとは異なり、これは.
(すでに有効にするためにシェルオプションを使用しない限りdotglob
)で始まるファイルも探します。