我正在编写一个脚本,允许用户进入所选的文件夹。完成后,脚本将从根目录开始搜索该文件夹,并显示该文件夹中仅具有“其他”类别的写入权限的所有文件。这是我到目前为止所得到的,我知道我的问题出在一个小的查找选项中,希望有人可以提供帮助。
echo -e "Enter a Folder Name Below\n"
read foldername
answer=$(find -prm -o+w / -name $foldername 2>/dev/null)
if [ "$answer" = "" ]
then
clear
echo -e "\n\n That Was Bad Input"
else
clear
ls -l $answer
fi
read pause
答案1
您的脚本需要进行一些改进。引用变量 , 是一个很好的"$folder"
做法"$answer"
。您需要在脚本中使用-z
和来测试空/非空字符串。尤其是在读取带有斜杠的输入时,-n
最好使用它。read -r
您还需要更改 find 命令中参数的顺序。wholename
根据您的 shell,您可能想使用name
.这是您可以考虑的工作版本。
#!/bin/bash
echo -e "Enter a Folder Name Below\n"
read -r foldername
answer=$(find / -type d -perm /o+w -wholename "$foldername" 2>/dev/null)
if [ -z "$answer" ]
then
clear
echo -e "\n\n That Was Bad Input"
else
clear
ls -l "$answer"
fi
read pause
答案2
您的选项中有语法错误find
。它是-perm
,例如:
$ find $foldername -type f -perm -o+w