我想使用我的查找找到重复的文件,我似乎无法让它回显“bububu”,因为即使我的路径和名称错误并且该目录中没有这样的文件,它仍然会回显“blablabla”。我正在尝试执行此操作,如果目标中存在具有完全相同名称的现有文件,请创建一个日志文件来跟踪该文件。所以现在我试图查找目标中是否存在具有完全相同名称的现有文件。
echo "Enter path for pre-configured settings"
read Path
echo "Enter file name for pre-configured settings"
read Name
if [ -n $(find "$Path" -type f -iname "$Name") ]
then
echo "blablabla"
else
echo "bububu"
答案1
通过适当的括号平衡,您的代码可以正常工作。
但由于您有一个结束符 '}' 而不是]
,因此}
是测试的一部分-n
,并且测试的字符串永远不会为空。执行一下set -x
可以看到正在执行:
+ '[' -n '}'
find
PS:如果您返回多个文件,您的代码可能会出现问题。在 周围加上引号"$(find ...)"
。