Macos Bash/Shell脚本查找所有文件,包括关键字和特定文件类型的文件
如何使用find查找特定类型的所有文件,例如Macos Bash/Shell脚本查找所有文件,包括关键字和特定文件类型的文件,macos,bash,shell,unix,find,Macos,Bash,Shell,Unix,Find,如何使用find查找特定类型的所有文件,例如“*.mp3”,但具体来说,查找包含关键字的任何名称的所有文件。e、 g.“黑色” 所有这些文件都适用于: - blackDog.mp3 - black dog.mp3 - black rain.mp3 - blackness.mp3 - BlAcK.mp3 - black.dog.mp3 - black-dog.mp3 这是我的代码,可以找到所有的'*.mp3'文件,但我就是找不到方法来编写所
“*.mp3”
,但具体来说,查找包含关键字的任何名称的所有文件。e、 g.“黑色”
所有这些文件都适用于:
- 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
非常感谢您能为我提供的任何帮助,请在下面对任何澄清进行评论:这应该可以做到:
find ~/Desktop -type f -iname '*black*.mp3' -exec mv -- {} ~/Music \;
文件名模式
*black*.mp3
与任何包含black
并以.mp3-iname'*black*.mp3'
结尾的文件名匹配,但不适合您?@Barmar现在我知道了,谢谢您将所有这些文件共享到同一目录中?如果是这样的话,最好的方法就是使用mv*black*.mp3~/Music
建议使用-exec
而不是shell中的循环。也许使用exec+
比使用exec\更好
为了减少调用mv
@TomFenech的次数,文档中说+
在末尾附加了所有文件名。但是使用mv
时,您需要在末尾使用目标目录。GNUmv
有--target directory
,可以在文件名之前使用它来解决这个问题,但我认为最好保持它的通用性。除非要移动数百个文件,否则差异可能可以忽略不计。