我正在阅读 xargs: How To Control and Use Command Line Arguments , 并找到以下示例:
{} as the argument list marker
......
$ find . -name "*.bak" -print0 | xargs -0 -I {} mv {} ~/old.files
我无法理解 bash shell
中 {}
的确切含义和功能,谁能给出详细的解释?
最佳答案
{}
是 xargs 的关键字。您的 cmd 意味着找到所有 *.bak
文件。并将每个 .bak
文件名提供给xargs as {}
(使用 -I {} 选项)。因此您可以在此处使用文件名作为参数。
例如。如果 find cmd 给你输出
1.bak
2.bak
3.bak
这里的每个文件名都以 {}
的形式提供给 xargs
。所以 mv {} ~/old.files
将转化为
mv 1.bak ~/old.files
mv 2.bak ~/old.files
mv 3.bak ~/old.files
假设您要将每个 .bak
文件重命名为 .bak.2015-04-01
。您必须在 mv cmd 中使用该文件名两次。
mv 1.bak 1.bak.2015-04-01
您可以通过使用
来实现这一点找到 . -名称“*.bak”-print0 | xargs -0 -I {} mv {} {}.2015-04-01
关于linux - bash shell中 "{}"的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508239/