如何使用unix命令在屏幕上显示一个目录下的所有文件内容

问题描述 投票:0回答:7

使用cat命令如下我们可以在屏幕上显示多个文件的内容

cat 文件1 文件2 文件3

但是在一个目录中,如果有超过 20 个文件,并且我希望所有这些文件的内容都显示在屏幕上,而不是使用上面的 cat 命令,通过提及所有文件的名称。

我该怎么做?

unix cat
7个回答
53
投票

您可以使用

*
字符来匹配当前目录中的所有文件。
cat *
将显示所有文件的内容。
如果您只想显示扩展名为 .txt 的文件,您可以使用
cat *.txt
,或者如果您想像您的示例一样显示文件名以“file”开头的所有文件,您可以使用
cat file*


27
投票

如果只是一层子目录,则使用

cat * */*
否则,

find . -type f -exec cat {} \;

表示运行

find
命令,在当前目录(.)中搜索所有普通文件(-type f)。对于找到的每个文件,运行应用程序 (-exec) cat,并将当前文件名作为参数({} 是文件名的占位符)。需要转义分号来终止 -exec 子句。


22
投票

我还发现在打印每个文件的内容之前打印文件名很有用:

find ./ -type f | xargs tail -n +1

它也会遍历所有子目录。


4
投票

如果您想要执行更多操作,而不仅仅是为每个文件调用一个命令,则使用 for 循环会更加灵活。例如,如果您想打印文件名及其内容

for file in parent_dir/*.file_extension; do echo $file; cat $file; echo; done

2
投票

你尝试过这个命令吗?

grep . *

它不适合大文件,但适用于 /sys 或 /proc,如果这是您想要看到的。


1
投票

您也可以使用

awk
。让我们考虑一下我们需要打印目录 some-directory 中的所有文本文件的内容

awk '{print}' some-directory/*.txt

0
投票

尝试这个命令:

cat Folder/*.txt
© www.soinside.com 2019 - 2024. All rights reserved.