linux - bash shell中 "{}"的作用是什么?

标签 linux bash unix

我正在阅读 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/

相关文章:

linux - PHP Socket编程从单片机读取数据

Linux 线程和进程 - CPU 亲和性

iphone - 从命令行分发 ipa 到 iTunes connect

linux - Bash 尝试执行 heredoc 中的命令

bash - 带有存储在文件中的通配符的 grep

linux - 如何在 Linux 上使用 clone() 创建一个真正的线程?

linux - 如何以稳定的 Debian 为目标但在测试中开发?

bash - 你在ctrl+u中代表什么?

c++ - 为什么这不能在我的学校 unix 系统上编译?

php - 负载测试的代表性如何?