bash 脚本:检查目录名称是否存在于任何地方(不仅仅是当前路径中)?

问题描述 投票:0回答:2

如何检查目录名称是否存在于计算机上的任何位置(不限于当前工作目录/子目录)?我现在正在使用 -d,但这只能让我知道该目录是否存在于我当前所在的路径中。

输入示例:

./file.sh hello

预期:

script will search through computer to see if there's a directory 
anywhere named "hello" and return "yes" 
bash directory
2个回答
0
投票

这应该有效

#!/bin/bash
find / -name "$1" -type d -print  

如果

从根运行,预计会出现很多Permission denied

错误

0
投票

除了你的问题之外,我想知道你是否关心是否有超过 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 脚本中使用一些命令、条件检查和管道。

© www.soinside.com 2019 - 2024. All rights reserved.