代码之家  ›  专栏  ›  技术社区  ›  robinjohnobrien

UNIX外壳程序:列出目录中除目录名之外的所有文件

  •  1
  • robinjohnobrien  · 技术社区  · 13 年前

    我想递归地列出目录中的所有文件。我将这个输出存储在一个文件中,稍后我将对该文件进行迭代,并将每一行用作另一个命令中的参数。

    然而,我尝试过的所有命令都将目录名列为输出行之一,后面跟着目录中包含的文件和目录。

    我尝试了以下操作:

    tree -if --noreport . > files_names.txt
    

    这给了我一些成功,但它仍然打印目录。输出示例如下:

    /testdir
    /testdir/rightfolder/
    /testdir/rightfolder/file2.txt
    /testdir/rightfolder/file3.txt
    /testdir/wrongfolder/
    /testdir/wrongfolder/file.txt
    

    我已经检查了手册页中的树和ls。

    是否有一个标志或其他命令可以给我正确的输出。我曾考虑使用flag for tree来列出目录,然后从原始列表中删除所有这些条目,但这一点都不优雅。

    1 回复  |  直到 13 年前
        1
  •  5
  •   cnicutar    13 年前

    你可以使用 find(1) 和按类型筛选:

    find ./ -type f