1

我需要一个脚本,它接受一个作为目录路径的命令行参数。脚本应该检查参数以确定它是否实际上是一个目录。如果是目录,则脚本应将位于其中的任何子目录的保护模式更改为 600。如果参数不是目录,则应打印出适当的消息。

我有

如果 [ -d $1 ] ; 然后


别的

echo "这不是目录"

基本上我不知道在空白行上放什么。我在玩弄 chmod 但我的行似乎想更改输入的路径而不仅仅是子目录。

4

2 回答 2

8
如果测试 -d "$1"; 然后
    查找 "$1" -type d -exec chmod 600 '{}' \;
别的
    echo "不是目录:$1" >&2
    1号出口
菲

各种变体可能更快,但取决于古代findxargs.

find "$1" -type d -exec chmod 600 '{}' +
find "$1" -type d -print0 | xargs -0r chmod 600
于 2009-10-14T21:06:17.327 回答
0
([ -d "$1" ] && find $1 -type d -mindepth 1 | xargs chmod 600 | true) || echo 'Not a directory'
于 2009-10-14T21:44:22.820 回答