Bash 检查目录权限,用户是否可以在中创建文件

Bash 检查目录权限,用户是否可以在中创建文件,bash,editor,ksh,vi,Bash,Editor,Ksh,Vi,我需要显示一个文件夹(lab_3il)及其4个子文件夹(aa bb cc dd)的用户是否具有写入权限,并将其输出到2个文件中 -dir_with_write_perm.rep -dir_without_write_perm.rep 文件夹应作为参数传递(例如.exe_3il.ksh lab_3il) 并创建一个日志文件 我试过while getopts,但没用 export LOG=storage_lab3il.log >$LOG while getopts ":aa:bb:c

我需要显示一个文件夹(lab_3il)及其4个子文件夹(aa bb cc dd)的用户是否具有写入权限,并将其输出到2个文件中

  -dir_with_write_perm.rep
  -dir_without_write_perm.rep
文件夹应作为参数传递(例如.exe_3il.ksh lab_3il) 并创建一个日志文件

我试过while getopts,但没用

export LOG=storage_lab3il.log
>$LOG
while getopts ":aa:bb:cc:dd:" opt; do
case $opt in
aa)a="$OPTARG" ;;
bb)b="$OPTARG" ;;
cc)c="$OPTARG" ;;
dd)d="$OPTARG" ;;
\?) echo "Invalid option: -$OPTARG" | tee -a $LOG
esac
done
echo "Subfolder: $1" | tee -a $LOG
# find out if folder has write permission or not
[ -w $1 ] && W="Write = yes" || W="Write = No"
echo "$W" | tee -a $LOG
echo  "Subfolder: $2" | tee -a $LOG
[ -w $2 ] && W="Write = yes" || W="Write = No"
echo "$W" | tee -a $LOG
echo "Subfolder: $3" | tee -a $LOG
[ -w $3 ] && W="Write = yes" || W="Write = No"
echo "$W" | tee -a $LOG
echo "Subfolder: $4" | tee -a $LOG
[ -w $4 ] && W="Write = yes" || W="Write = No"
echo "$W" | tee -a $LOG

我希望输出文件是否可以(由用户)写入给定的子文件夹。

一些没有
getopts
的实现可能不是您想要的,但可以向您展示如何实现类似的结果:

#/副秘书长/垃圾箱/环境卫生
#日志文件
LOG=存储\ u lab3il.LOG
#主文件夹
文件夹=./lab\u 3il
#删除日志文件
true>“$LOG”
#要写入的权限文件取决于是否可写
permfile\u writeable=“$folder/-dir\u with\u write\u perm.rep”
permfile\u readonly=“$folder/-dir\u不带写入\u perm.rep”
#删除权限文件
rm-f--“$permfile_writable”$permfile_readonly”| true
#当存在子文件夹参数时
而[-n“$1”];做
subfolder=“$1”&&shift#pull子文件夹参数
#如果子文件夹不是目录,请继续下一步
[!-d“$folder/$subfolder”]&继续(&C)
#测试子文件夹参数是否可写
如果[-w“$folder/$subfolder”];然后
permfile=“$permfile\u可写”
perm=是
其他的
permfile=“$permfile\u只读”
烫发=否
fi
#附加子文件夹名称
#在其相应的权限文件中
回显“$subfolder”>>“$permfile”
#Log:Writable=yes | no子文件夹参数名称
printf'Writable=%s:%s\n'$perm'$subfolder'>>“$LOG”
完成

这给了我一个好主意!谢谢但是,现在我需要能够使用脚本检查根目录、主目录或任何其他目录中的权限+列表内容。如何使所有其他目录都可以访问它?