在目录中查找特定目录并更改文件名

时间:2017-03-26 04:24:29

标签: regex bash shell unix grep

我写下这段代码来找到特定的目录。

read dir
find -type d | grep $dir

我想检查文件夹中是否存在$ dir。 我怎样才能检查特定目录名的存在?

3 个答案:

答案 0 :(得分:1)

列出所有目录并greping所需目录。

ls -d */用于列出目录

grep name_of_directory用于搜索目录名称

ls -d */ | grep name_of_directory

如果目录不存在,则显示消息

ls -d */ | grep name_of_directory | if [ $(wc -L) -eq 0 ]; then echo "Directory not found!"; fi;

答案 1 :(得分:1)

如果我理解正确,您需要验证$dir是否是当前目录中目录的名称。如果是这样,我认为最简单的检查方法是使用test[命令:

if [ -d "$dir" ]; then
    echo "$dir is a directory"
else
    echo "$dir is not a directory"
fi

查看man test了解详情。

答案 2 :(得分:0)

您可以使用find或locate util来搜索目录。

查找的使用信息:

find path pattern

查找命令以找到目录:

find / -type d -name curl

find /dir/path/look/up -name "dir-name-here"

这将列出目录中的文件。

find  / -type d -name "apt" -ls
  • " /"在这种情况下,在哪里看" /"它是整个系统,或者您可以指定特定的目录路径。

  • 名称可以是-iname以忽略大小写

  • 也是-type不是强制性的

其他命令是定位的,非常简单:

locate curl