shell中的反引号执行命令和管道执行命令有什么区别?
wc -l find ./ -name *.pyfind . -name "*.py" | xargs wc -l反引号的命令执行方式,与管道的执行方式,有什么区别呢,哪种更好?
linux运维shellpython:关于shell中通过反引号执行“不好用”的原因看这里a) wc -l $(find) b) find | xargs wc -l
区别大概是:
a) 同一时间只有一个进程在跑;
b) 在同一时间有3个进程a) wc 在 find 执行完前不会执行,输出有延迟;
b) wc 实时输出
场景:如果想实时查看日志a) 在接收 find 输出时用的 buffer 比 b) | 管道用的 buffer 更大, 且不设上限(我猜,没看过bash的实现)
场景:如果把 find 替换为 cat 20G.log
供参考: