📌  相关文章
📜  列出目录和子目录中的所有文件 linux - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:36:51.655000             🧑  作者: Mango

Linux中列出目录和子目录中的所有文件

在Linux中,要列出目录和子目录中的所有文件,可以使用find命令。find命令会遍历指定的目录及其子目录,并输出所有符合条件的文件。

命令语法
find [path...] [expression]

find命令的语法中,[path...]代表要遍历的目录,可以指定多个目录。[expression]代表要应用于文件的过滤条件。

列出所有文件名

如果你想列出所有目录和文件的名字,可以使用以下命令:

find /path/to/directory -print

该命令将遍历目录/path/to/directory及其子目录,并将所有目录和文件的名字输出到标准输出。

列出所有文件路径

如果你想列出所有文件的完整路径,可以使用以下命令:

find /path/to/directory -type f -print

该命令将遍历目录/path/to/directory及其子目录,将所有文件的完整路径输出到标准输出。-type f选项表示只输出文件,不包括目录。

列出所有目录和文件的详细信息

如果你想列出所有目录和文件的详细信息,可以使用以下命令:

find /path/to/directory -ls

该命令将遍历目录/path/to/directory及其子目录,并输出所有目录和文件的详细信息,包括文件类型、权限、所有者、大小等等。

只列出指定扩展名的文件

如果你只想列出指定扩展名的文件,可以使用以下命令:

find /path/to/directory -type f -name "*.txt" -print

该命令将遍历目录/path/to/directory及其子目录,将所有扩展名为.txt的文件的完整路径输出到标准输出。-name "*.txt"选项表示只匹配扩展名为.txt的文件。

只列出指定大小的文件

如果你只想列出指定大小的文件,可以使用以下命令:

find /path/to/directory -type f -size +1M -size -10M -print

该命令将遍历目录/path/to/directory及其子目录,将所有大小在1MB和10MB之间的文件的完整路径输出到标准输出。-size +1M -size -10M选项表示只匹配大小在1MB和10MB之间的文件。

使用正则表达式匹配文件名

如果你想使用正则表达式匹配文件名,可以使用-regex选项。例如,以下命令可以匹配所有以.txt.md结尾的文件:

find /path/to/directory -type f -regex ".*\.\(txt\|md\)$" -print

该命令将遍历目录/path/to/directory及其子目录,将所有以.txt.md结尾的文件的完整路径输出到标准输出。

总结

在Linux中,通过使用find命令可以非常方便地列出目录和子目录中的所有文件。你可以根据需求选择输出文件名、文件路径、详细信息、指定扩展名、指定大小、使用正则表达式等等。