如何使用 xargs 将 ls 通过管道传输到 cat 中,以便列出文件名?

how to pipe ls into cat with xargs so that filenames are listed?

对于使用cat输出特定目录中的*.txt个文件,如何在每个文件之前插入文件名作为“中断”?

file #1
contents of file

file #2
contents of file

理想情况下是易于记忆的几个 bash 命令。

另见:

Why not pipe list of file names into cat?

改进答案;

而不是单独的 -exec basename,仅使用 -print 将显示文件名:

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

您可以使用 find command with multiple -exec;

find . -type f -iname '*.txt' -exec basename {} \; -exec cat {} \;
-> ls
a.txt  b.txt

-> find . -type f -iname '*.txt' -exec basename {} \; -exec cat {} \;
b.txt
b
a.txt
a

@0stone0 回答的另一个选项 您可以使用 tail 而不是 cat:

tail -n +1 *

输出:

==> file-1.txt <==
contents of file


==> file-2.txt <==
contents of file