【问题标题】:ls all files in directory plus all files in directories one level downls 目录中的所有文件以及下一级目录中的所有文件
【发布时间】:2012-11-23 21:30:17
【问题描述】:

好的,我有以下情况。

大写是目录,小写是文件。

A/aa
B/bb
C/cc
D/dd
D/E/ddd
D/F/G/dddd
a
b
c
d

我想做一个列出列表的 ls

a
b
c
d
A/aa
B/bb
C/cc
D/dd

但不是

D/E/ddd
D/F/G/dddd

【问题讨论】:

    标签: linux bash command-line ls


    【解决方案1】:

    使用find只查找当前目录或下一个目录中的文件:

    $ find . -maxdepth 2  -type f
    

    演示:

    # Show whole directory structure, digits are files, letters are folders. 
    $  find .
    .
    ./1
    ./2
    ./3
    ./4
    ./A
    ./A/11
    ./B
    ./B/22
    ./C
    ./C/33
    ./D
    ./D/44
    ./D/E
    ./D/F
    ./D/F/444
    ./D/F/G
    ./D/F/G/4444
    
    # Find only files at a maximum depth of 2
    $  find . -maxdepth 2  -type f
    ./1
    ./2
    ./3
    ./4
    ./A/11
    ./B/22
    ./C/33
    ./D/44
    

    【讨论】:

      【解决方案2】:

      这个列出了当前工作目录中目录内的所有内容:ls -l */

      两个命令的组合也会包含当前目录中的文件:ls -l */; ls -l

      【讨论】:

        【解决方案3】:

        你可以用 find:

        find . -maxdepth 2
        

        【讨论】:

        • 这个过度匹配,它找到目录和文件。
        猜你喜欢
        • 2013-12-31
        • 2014-03-08
        • 2017-03-15
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        • 1970-01-01
        • 2015-05-18
        • 2020-08-22
        相关资源
        最近更新 更多