Bash / Shell脚本查找包括关键字和特定文件类型的所有文件

时间:2015-04-03 04:03:48

标签: macos bash shell unix find

我如何使用find查找特定类型的所有文件,例如'*.mp3'但具体包含任何名称的所有文件,包括关键字。例如'black'

所有这些文件都适用:

    - blackDog.mp3
    - black dog.mp3
    - black rain.mp3
    - blackness.mp3
    - BlAcK.mp3
    - black.dog.mp3
    - black-dog.mp3

以下是我的代码,它会找到所有'*.mp3'个文件,但我找不到用任何包含关键字'black'的名称编写所有mp3的方法。

find ~/Desktop \( -type f -iname '*.mp3' \) -print0 |
while IFS= read -r -d '' f;
do mv -- "$f" ~/Music ;
done

非常感谢你能给我的任何帮助,请在下面评论任何澄清:

1 个答案:

答案 0 :(得分:2)

这应该这样做:

find ~/Desktop -type f -iname '*black*.mp3' -exec mv -- {} ~/Music \;

文件名模式*black*.mp3匹配包含black且以.mp3结尾的任何文件名。