linux - 使用 find -exec 重定向标准输出

标签 linux shell find

我想将一个文件夹及其子文件夹下的所有文件合并到一个文件total.txt中,所以我尝试

查找 . -type f -exec cat {} +; > 总计.txt

并且输出无法重定向

管道也无法工作:

查找 . -type f -exec cat {} + |猫>total.txt

这可能是由 -exec 引起的,它将其后面的所有参数作为命令?

是吗?以及如何修复它?或者有没有更好的方法来实现这一点。

任何帮助将不胜感激:)

最佳答案

有一些问题。分号正在终止命令,因此您正在运行两个命令,第二个命令是空重定向。其次,您需要防止 find 找到它正在写入的文件,一个简单的方法是将其上移到一个目录:

 find . -type f -exec cat {} + > ../total.txt

关于linux - 使用 find -exec 重定向标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30135110/

相关文章:

linux - Glusterfs 融合客户端在复制文件时显示陈旧文件句柄错误

windows - 有没有办法列出Windows中的所有别名

mysql - 从终端或 shell 脚本制作 neo4j 命令

c - fork() 在 linux gcc 中的工作

linux - 无法终止循环休眠的 Bash 命令

linux - 如何在 Linux 上查找名称短于 n 个字符的文件?

python - 使用数组在 mongodb 中查找值

bash - 如何将 shell 命令应用于嵌套(并且转义不佳)子目录中的许多文件?

c++ - 如何在 Linux 上使用 C++ 查询 Informix 数据库?使用 C++ 的对象接口(interface)时出现编译器错误

linux - 多个文件的脚本然后创建一个 mvfile 脚本将文件移动到目录认为我犯了一个错误