![](/img/trans.png)
[英]Bash scripting wanting to find a size of a directory and if size is greater than x then do a task
[英]find directories having size greater than x MB
是否可以找到大小僅大於 x MB 的目錄。 假設,我只想在 /home 下找到所有大小大於 1000MB 且只有 1 個 maxdepth 的目錄,如何在 .
如果我正確地解釋你的問題,我認為這可能是你想要的:
cd /home
du -sm * | awk '$1 > 1000'
這將顯示/home
中包含超過1000MB的所有目錄。 如果您的du
版本不支持-m
,您可以使用du -sk
並調整awk
位以查找超過1,000,000KB而不是...
根據聯機幫助頁, -k
選項符合POSIX但-m
選項不是。
所以以下更便攜(即如果您使用的是 BSD,它仍然可以工作)但本質上是一樣的:
du -sk * | awk -v m=1000 '$1 > 1024*m'
只需將 awk 變量m設置為您希望作為截止值的兆字節數。
我發現這對於移動一批文件非常有用,因此張貼在這里是為了他人的利益。
要擴展它以將所有符合您條件的文件移動到另一個目錄,您可以調整awk
命令以僅打印移動所需的位(不包括大小),然后循環:
# moving all directories meeting the size criteria to another location:
for d in $(du -sk * | awk -v m=1000 '$1 > 1024*m {print $2}')
do
mv $d $DESTINATION
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.