如何检查目录名称是否存在于计算机上的任何位置(不限于当前工作目录/子目录)?我现在正在使用 -d,但这只能让我知道该目录是否存在于我当前所在的路径中。
输入示例:
./file.sh hello
预期:
script will search through computer to see if there's a directory
anywhere named "hello" and return "yes"
这应该有效
#!/bin/bash
find / -name "$1" -type d -print
如果
不从根运行,预计会出现很多
Permission denied
错误
除了你的问题之外,我想知道你是否关心是否有超过 1 个名为“hello”的子目录。除此之外,下面我放置了一个简单的 shell 脚本,它有条件地检查该目录是否存在于某处:
if find / -type d -name "hello" 2>/dev/null | grep -q .; then
echo "Yes, the directory exists."
else
echo "No, the directory does not exist."
fi
在我看来,你应该更具体地关注你的任务要求,而不是确切的脚本。在任何编程语言中你都可以做到这一点。在这里,我们在 shell 脚本中使用一些命令、条件检查和管道。