我尝试通过此命令提取所有子目录中的所有文件
$ find -name "*.bz2" -print -exec bizp2 -d "*.bz2" {}\;
find: missing argument to `-exec'
但它不起作用:(
顺便说一句,我不明白 {} 的用法;
答案1
您的命令中有两个错误:
- 省略 bzip2 的“*bz2”选项,{} 将被替换为任何文件查找返回
- 在{}和\之间添加一个空格;
所以完整的命令是
find -name "*bz2" -print -exec bzip2 -d {} \;
答案2
...我不明白你的命令...我只会使用:
find -name *.bz2 -exec bzip2 -d '{}' ';'
我不明白你为什么放“*.bz2”。根据
man find
您应该将其放在引号 '' 中,因为 {} 可能会被 shell 解释。通过一些测试,我想我可以得出结论,问题在于您在 {} 和 \; 之间没有放置空格。而手册页指定最后一个参数应仅包含 ; 。