我有一个别名
alias binobj="find . -iname "bin" -o -iname "obj" | xargs rm -rf"
我的磁盘快满时使用的。这将从当前文件夹中递归搜索,删除文件夹“ bin”和“ obj”。
我想知道如何知道所有已删除文件的总和。我已经考虑过通过管道在2个命令之间放置回显,但是这样xargs
就不会收到要删除的文件。
我在Mac电脑上,但是我不怕添加软件包。我只是不想将其放在另一个文件中(这是我的.bash_profile
),因为该文件与我所有其他的macs同步。
您需要非常小心地进行递归查找,bin
并且obj
...例如,您可能会意外弹出重要的文件或目录(例如:).../.hg/store/data/obj
,这不是一个好主意。
只要有可能,您都希望尽可能地精确。如果要删除目录,请指定目录,-type d
以免意外匹配文件/ symlink /等。
另外,这足够大,以至于成为一组具有可读性/可维护性的功能将非常有益。
这组函数(最后一个管道,可以别名/放入功能)将删除所有bin
与obj
旁边,是一个名为文件目录makefile
(所有不区分大小写)。总字节数将stderr
使用shy写入numfmt
以获取输出,例如“ 9.1MB
”
function getMakefiles {
find . -type f -iname makefile
}
function getBinObjDirsNear {
while read NEAR; do
find $(dirname ${NEAR}) -type d -maxdepth 1 \( -iname bin -o -iname obj \)
done
}
function calcTotal {
TOTAL=0
while read ENT; do
TOTAL=$(( TOTAL + $(du -bc ${ENT} | tail -n 1 | cut -f 1) ))
echo ${ENT}
done
numfmt --to=iec --suffix=B --format="%f" ${TOTAL} >&2
}
getMakefiles | getBinObjDirsNear | calcTotal | xargs -d '\n' rm -rf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句