Linux shellscript 合并所有文件,无需 for 循环

2 linux shell cat

我在一个目录中有数百个文件,是否有一个简单的命令或命令管道可以用来将它们附加在一起?我不想使用任何循环。

jm6*_*666 5

cat * >/path/to/somewhere
Run Code Online (Sandbox Code Playgroud)

不要做

cat * > toall.txt
Run Code Online (Sandbox Code Playgroud)

因为“toall.txt”是在cat启动之前创建的,你会得到奇怪的结果,“cat”将toall.txt转换为toall.txt。

如果要在当前目录中使用 cat,则应使用

cat [some_globbing] > file #or
cat * > .dotted_file
Run Code Online (Sandbox Code Playgroud)

.dotted_file 不会被通配扩展*

或者例如

(ls *.txt | xargs cat ) > /some/file
Run Code Online (Sandbox Code Playgroud)