【问题标题】:How do I handle spaces in a script that uses the results of find in a for loop?如何处理在 for 循环中使用 find 结果的脚本中的空格?
【发布时间】:2010-07-09 04:45:56
【问题描述】:

我正在尝试编写一个简单的命令,该命令在音乐目录中搜索特定类型的所有文件并将它们复制到新目录。如果文件没有空格,我会很好。

我正在使用来自以下问题的脚本,但空格失败: bash script problem, find , mv tilde files created by gedit

关于如何处理空格的任何建议,一旦我对列出所有文件感到满意,我会将echo 更改为cp

for D in `find . -name "*.wma*"`; do echo "${D}"; done

【问题讨论】:

    标签: scripting


    【解决方案1】:

    您可能想要这样做:

    find . -name *.wma -exec echo "{}" \;
    

    【讨论】:

    • 那行不通。您能否添加有关如何处理空格的说明?
    • 不工作怎么办?如果你查看 find 的手册页,它会说:“字符串 `{}' 被当前文件名替换”。所以如果你在它周围加上引号,就像在我的例子中一样,你将处理空格。
    • 没有工作,因为我忽略了 \;它一直给我一个 find: -exec: no terminating ";"或“+”感谢您的帮助
    猜你喜欢
    • 2023-03-17
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2015-11-27
    • 2021-08-14
    相关资源
    最近更新 更多