【问题标题】:Find specific directory and change file name in the directory查找特定目录并更改目录中的文件名
【发布时间】:2017-03-26 04:24:28
【问题描述】:

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

read dir
find -type d | grep $dir

我想检查文件夹中是否存在 $dir。 如何检查特定目录名称的存在??

【问题讨论】:

    标签: regex bash shell unix grep


    【解决方案1】:

    列出所有目录并查找所需的目录。

    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;
    

    【讨论】:

    • 非常感谢!!我还有一个问题。如果文件夹中没有目录,我该如何显示消息?
    • @alryosha 你现在可以检查一下吗?
    【解决方案2】:

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

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

    查看man test了解更多信息。

    【讨论】:

      【解决方案3】:

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

      find的使用信息:

      find path pattern
      

      查找命令以定位目录:

      find / -type d -name curl
      

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

      这将列出目录中的文件。

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

      • name 可以是 -iname 以忽略大小写

      • also -type 不是强制性的

      其他命令是 locate ,很简单:

      locate curl
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 2021-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多