我需要一个 shell 脚本,检查是否包含超过4个文件的目录,并改变目录所有者。
下面的脚本只检查目录是否为空,如果目录为空,则将目录所有者更改为lohith,如果目录不为空,则将所有者更改为satha。
下面是需要添加到脚本中的内容,以检查目录是否包含超过4个文件,是否需要将所有者更改为satha,如果目录包含少于4个文件或目录为空,是否需要将所有者更改为lohith。
#!/bin/bash
FILE=""
DIR="/home/ec2-user/test1"
# init
# look for empty dir
if [ "$(ls -A $DIR)" ]; then
chown satha $DIR
else
chown lohith $DIR
fi
2条答案
按热度按时间e3bfsja21#
通常不希望parse the output of the ls command in a script。非ls示例可能如下所示:
这会将文件列表放入数组中,然后按顺序检查:如果数组有4个以上的元素(即4个以上的文件),则通过确认数组的第一个元素存在(这证明glob匹配 something)来检查目录是否为非空,然后福尔斯目录为空的最后一种情况。
4zcjmb1e2#
下面是一个使用ls的例子。
wc -l <filename>
将返回文件中的行数,所以如果我们将ls的输出通过管道传输到wc,我们就可以得到文件中的行数。由于$(pwd)
得到当前的工作目录,所以可以用任何其他目录替换它。