我有以下脚本 - 它应该使用 find 循环文件名,但它接缝以空格分隔文件名?我需要文件名保持完整
#!/bin/bash
for file in `find -name "*.avi"`
do
./myscript $file
done
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
谢谢
Mag*_*lan 13
还: find -name "*.avi" -exec ./myscript '{}' \;
Womble 的答案在大多数情况下肯定有效,但 Xargs 在所有实现中都有空格并不完美。我从来没有发现 find 的 'exec' 模式被破坏。Solaris 在这方面尤其暴躁。
显然,'-print' 更适合简单地为 for 循环中的文件列表生成输出。但是,如果您在文件列表上运行命令,则只运行 '-exec' 选项会更有效。
find -name "*.avi" -print0 | xargs -0 -n 1 echo
Run Code Online (Sandbox Code Playgroud)
你不必echo
在xargs
:
find -name "*.avi" -print0 | xargs -0 -n 1 ./myscript
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4996 次 |
最近记录: |