在保留目录的同时进行Bash,查找和删除

时间:2013-10-07 15:10:57

标签: unix

我正在尝试使用一些Bash脚本,我们将不胜感激。

该脚本应该在/ Users /中找到所有用户,并删除里面的所有内容。电影,文档,桌面和音乐。

虽然仍保留目录基本上清空它。还排除了ladmin,shared和Guest的用户文件。

当我执行时。虽然我得到了我期望的反馈,但它并没有清空文件。我在这里错过了一些简单的东西吗?

DIR_CD=/Users/

cd $DIR_CD

find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \
       -maxdepth 1 -print -exec rm -rf {}/Desktop/* \;
find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \
       -maxdepth 1 -print -exec rm -rf {}/Documents/* \;
find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \
       -maxdepth 1 -print -exec rm -rf {}/Movies/* \;
find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \
       -maxdepth 1 -print -exec rm -rf {}/Music/* \;

1 个答案:

答案 0 :(得分:0)

喜欢这个吗?

for d in /Users/*; do
    case ${d#*/} in ladmin | Guest | Shared ) continue ;; esac
    rm -rf "$d"/Desktop/* "$d"/Documents/* "$d"/Movies/* "$d"/Music/*
done

使用Bash extended globbing,您可以使用单个通配符表达式完成所有操作。

相关问题