查找目录中不是目录本身的所有文件

Posted

技术标签:

【中文标题】查找目录中不是目录本身的所有文件【英文标题】:Find all files in a directory that are not directories themselves 【发布时间】:2010-11-20 23:59:30 【问题描述】:

我正在寻找一种方法来列出目录中的所有文件,不包括目录本身,以及这些子目录中的文件。

如果我有:

./test.log
./test2.log
./directory
./directory/file2

我想要一个返回的命令:./test.log ./test2.log 没有别的。

【问题讨论】:

【参考方案1】:

如果你想要test.logtest2.logfile2,那么:

find . -type f

如果你不想要file2 那么:

find . -maxdepth 1 -type f

【讨论】:

【参考方案2】:

如果您还需要列出符号链接、管道、设备文件和文件系统的其他特定元素,则应使用:

find -maxdepth 1 -not -type d

这将列出除目录之外的所有内容。

【讨论】:

这正是我想要的。我想列出所有类型的 except 目录。我正在做类似find / -group xxx | xargs ls -l 的事情。这将ls -l <dir> 然后ls -l <file> 目录中的每个文件。但是使用-not -type d 从输出中排除了目录。请注意,! -type d 也可以工作(并且根据手册页声称符合 POSIX)【参考方案3】:

使用 find 很简单:

find . -maxdepth 1 -type f

【讨论】:

【参考方案4】:
find . -type f

【讨论】:

你是对的,误读了这个问题。 John Kugelman 发布了更完整的答案。【参考方案5】:
find /some/directory -type f

【讨论】:

【参考方案6】:
$ find . -type f -print

每个文件将在自己的行中。您必须在要搜索的目录中。

【讨论】:

【参考方案7】:

更多选择

ls -ltr | grep ^d

【讨论】:

以上是关于查找目录中不是目录本身的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

Centos 查找目录下所有文件中是不是包含指定字符串

centos下查找目录下的所有文件中是不是包含指定字符串

C++ 删除所有文件和子文件夹,但保留目录本身

如何删除 Documents 目录的内容(而不是 Documents 目录本身)?

Linux基础命令练习题7.27

文件查找和压缩