OS X中的bash脚本可以复制所有.wavs

时间:2018-01-07 22:18:18

标签: bash macos quoting glob

我一直在尝试将我系统上的所有.wav文件(基于OS X)复制到一个文件夹中......奇怪的是没有任何内容被复制到新文件夹中。

#!/bin/sh

find . -name /Applications/*.wav -exec cp {} /Users/myhouse/Downloads/audio_pool/wav/ ;

是否存在循环传播的风险(即它找到文件并继续将它们复制到文件夹中)

我也试过这种格式

for f in /*.wav; do cp "$f" /Users/myhouse/Downloads/audio_pool/wav/.; done                                                                              

1 个答案:

答案 0 :(得分:1)

需要对glob进行转义以使find解释它而不是shell。将/Applications/路径移到前面:-name仅匹配文件名,而不是完整路径。请务必在最后引用;

find /Applications/ -name '*.wav' -exec cp {} /Users/myhouse/Downloads/audio_pool/wav/ ';'
     ^^^^^^^^^^^^^^       ^^^^^^^                                                      ^^^
       directory        quoted glob                                                  quoted