-1

我正在尝试一些 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/* \;
4

1 回答 1

1

像这样?

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扩展通配符,您可以使用单个通配符表达式完成所有操作。

于 2013-10-07T15:26:37.283 回答