特定のサイズより大きいディレクトリを検索する方法を探しています。私は次が非常にうまく動作することがわかりました。
# du -sh /var/log/ --threshold=5G
5.3G /var/log/
問題は、--thresholdがUbuntuでのみサポートされているようです。たとえば、CentOSで試してみると、次のような結果が表示されます。
# du -sh /var/log/ --threshold=5G
du: unrecognized option '--threshold=5G'
Try `du --help' for more information.
CentOS、Ubuntu、Debianで動作する代替手段を知っている人はいますか?
du -sフラグをサポートするには(サブディレクトリのサイズを除く)、同等のものが確実に必要であることに注意してください。
ベストアンサー1
--threshold
使用可能なコマンドは次のとおりです。
- Ubuntu 18.04/20.4
- Debian 提示 8/stretch 9 バスター 10
- セントース7
大きなコマンドライン:
(
THRESHOLD='200M'
PATTERN='==========---------========----'
(
sudo find / -type d -print0 2>/dev/null | \
sudo xargs -0 -P4 -- du -sh 2>/dev/null ;
echo "${THRESHOLD} ${PATTERN}"
) | sort -h | sed "0,/${PATTERN}/ d"
)
注:フォルダ名にスペースがある場合は、-print0
2つのファイル間の区切り文字が役立ちます。\0
-0
区切り文字を含むストリームを読み取るように xargs に指示する\0
-P4
ある程度の並列処理で4を実行するように指示します。
0,/REGEX/ d
sed
最初の行とREGEXに一致する行の間の行を削除するように指示します。
添付:
Centos 6では使用できません。