命令
find /tmp -name 'core*' -type f -print0 | xargs -0
在 Linux 上工作正常,但xargs -0
选项在 Solaris 上不合法
xargs
Solaris 10 的等效选项 (?) 是什么
第二个问题:
是否可以更改语法:
find /tmp -name 'core*' -type f -print0 | xargs -0
因此它适用于 Linux 和 Solaris 这两种操作系统
我在我的Solaris 10机器上尝试:
find /tmp -name 'core*' -type f -print0 | xargs -0
xargs: illegal option -- 0
xargs: Usage: xargs: [-t] [-p] [-e[eofstr]] [-E eofstr] [-I replstr] [-i[replstr]] [-L #] [-l[#]] [-n # [-x]] [-s size] [cmd [args ...]]
答案1
-print0
to find 和to xargs都不-0
是 POSIX,并且可能并非在任何地方都可用。命令+
终止符 to-exec
是 POSIX 的一部分,并且将完成相同的任务。这是一个例子。
find /tmp -type f -name 'core*' -exec rm {} +
答案2
和--print0
是-0
GNU 扩展。我相信(几乎)完整的 GNU 工具套件可用于 Solaris(可能以诸如 之类的名称gfind
,默认情况下可能未安装)。
这里是建议安装的工具列表,以使您的 Solaris 体验更加愉快。
答案3
使用 GNU Parallel 代替 xargs:
find /tmp -name 'core*' -type f -print | parallel echo
安装 GNU Parallel 实际上只需要 10 秒:
wget pi.dk/3 -qO - | sh -x
观看介绍视频以了解更多信息:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1