为什么 -I 参数的默认选择是“{}”?

为什么 -I 参数的默认选择是“{}”?

似乎您可以为 -I 参数传入“file”等变量名xargs,但有大量使用 {} 的示例。这是因为向后兼容性吗?或者它对可变位置的可见性有帮助吗?为什么很多人使用 {} 而不是变量名?

答案1

很久以前find … -exec …用作{}要替换为匹配文件名的字符串。选择该字符串可能是因为它通常不会出现在文件名或命令行中。

当时,xargs甚至不存在。当它被发明时,它{}也被使用。当添加该-i选项时(我不知道是谁第一个这样做的:考虑到时间范围,大概是 Solaris),这意味着“插入模式”;保留要替换的默认字符串{}

答案2

find -exec我想这只是为了与引入大括号约定的子句保持一致。

相关内容