如何在 if else 语句中使用 find 来查找重复文件?

如何在 if else 语句中使用 find 来查找重复文件?

我想使用我的查找找到重复的文件,我似乎无法让它回显“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 '}'

findPS:如果您返回多个文件,您的代码可能会出现问题。在 周围加上引号"$(find ...)"

相关内容