bash查找目录

25 linux directory bash

我是bash脚本的新手.我只是想创建一个脚本来搜索目录并回显所有子目录的名称.

代码的基础是以下脚本(称为isitadirectory.sh):

     #!/bin/bash

     if test -d $1
         then
                echo "$1"
     fi
Run Code Online (Sandbox Code Playgroud)

如果我输入,在命令行中

       $bash isitadirectory.sh somefilename 
Run Code Online (Sandbox Code Playgroud)

它将回显somefilename,如果它是一个目录.

但我想搜索父目录中的所有文件.

所以,我正试图找到一种方法来做类似的事情

           ls -l|isitadirectory.sh
Run Code Online (Sandbox Code Playgroud)

但当然上面的命令不起作用.有人能解释一个好的脚本吗?

Ign*_*ams 56

find . -mindepth 1 -maxdepth 1 -type d
Run Code Online (Sandbox Code Playgroud)


fio*_*ing 34

在特定情况下,您正在寻找1)目录,您知道2)名称,为什么不尝试这个:

find . -name "octave" -type d
Run Code Online (Sandbox Code Playgroud)


zb'*_*zb' 8

试着用

find $path -type d

对于当前目录

find . -type d


小智 6

find ./path/to/directory -iname "test" -type d
Run Code Online (Sandbox Code Playgroud)

我发现这对于使用 -iname 进行不区分大小写的搜索来查找目录名称非常有用。其中“测试”是搜索词。


小智 5

以下几行可能会给您一个想法......您想要什么

#!/bin/bash

对于“ls -l”中的文件
做
    如果测试 -d $FILE
    然后
      echo "$FILE 是一个子目录..."
    菲
完毕

您可以查看 bash 'for' 循环。

  • `ls -l` 不起作用。还可以考虑使用 * 而不是解析 ls 输出([为什么你不应该解析 ls 的输出](http://mywiki.wooledge.org/ParsingLs))。 (4认同)