UNIX Shell:列出目录中除目录名称之外的所有文件

rob*_*ien 1 linux shell tree recursion ls

我想以递归方式列出目录中的所有文件.我将此输出存储在一个文件中,我稍后将迭代该文件,并将每一行用作另一个命令中的参数.

但是,我尝试过的所有命令都将目录名称列为输出行之一,后跟目录中包含的文件和目录.

我尝试过以下方法:

tree -if --noreport . > files_names.txt
Run Code Online (Sandbox Code Playgroud)

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

/testdir
/testdir/rightfolder/
/testdir/rightfolder/file2.txt
/testdir/rightfolder/file3.txt
/testdir/wrongfolder/
/testdir/wrongfolder/file.txt
Run Code Online (Sandbox Code Playgroud)

我检查了man和ls的手册页.

是否有标志或其他命令将给我正确的输出.我已经考虑使用树的标志来列出目录,然后从原始列表中删除所有这些条目,但这根本不是优雅的.

cni*_*tar 5

您可以find(1)按类型使用和过滤:

find ./ -type f
Run Code Online (Sandbox Code Playgroud)