哪一个对一组非常大的文件更有效,应该使用?

find . -exec cmd {} +

find . | xargs cmd

(假设文件名中没有有趣的字符)

推荐答案

速度差将是微不足道的.

但你必须确保:

  1. 你的脚本不会假设没有

  2. 脚本不会将以"-"开头的文件视为选项.

所以你的代码应该是这样的:

find . -exec cmd -option1 -option2 -- {} +

find . -print0 | xargs -0 cmd -option1 -option2 --

The first version is sh或ter and easier to write as you can ign或e 1, but the second version is m或e p或table and safe, as "-exec cmd {} +" is a relatively new option in GNU findutils (since 2005, lots of running systems will not have it yet) and it was buggy recently. Also lots of people do not know this "-exec cmd {} +", as you can see from other answers.

Linux相关问答推荐

是否有例外情况需要在.gitconfig中使用?

如何将netcdf文件列表中的特定变量添加到不同的文件中?

2023 年如何在现代 Linux 上安装 Firebird SQL 版本 3 或 4?

Docker 不保留 chown 用户设置

如何从大页分配标准数组内存

在 bash 脚本中保持两个进程处于活动状态(并在死亡时重生它们)

仅查找并保留有效邮箱并删除无效记录,AWK

在 Linux 上的 std::threads 中创建子进程

从 Ansible 中的 shell 命令输出中提取特定数据

为什么 printf 仍然可以使用低于 XMM 寄存器中 FP args 数量的 RAX?

根据外部请求在 Netbeans 中启动 XDebug

在 Linux 下将 TCP 流量重定向到 UNIX 域套接字

用于将文件夹从本地计算机复制到远程服务器的 scp 命令语法

从 shell 将多个 .sql 转储文件导入 mysql 数据库

size_t 和 off_t 的用法有什么区别?

NGINX:connect() 到 unix:/var/run/php7.0-fpm.sock 失败(2:没有这样的文件或目录)

*nix 系统上是否有与 COM 等效的功能?如果不是,那么 *nix 的可重用性方法是什么?

bash / Makefile中双美元符号的含义是什么?

PostgreSQL psql 终端命令

Bash 将 awk 的输出捕获到数组中