我的笔记本电脑崩溃后,我刚刚从 mDebian 转移到 macOS。幸运的是,我能够用我的别名挽救我的 .zshrc,但是,使用“find”的两个别名似乎在 macOS 中不起作用,我不太清楚它们的区别是什么。
第一个命令应该将所有文件从 msubdirectories 移动到当前目录,并且它在 debian 上完美运行:
alias mup='find -type f -exec mv {} . \;'
然而在 macOS 上我得到了“find: illegal option -- t”
同样,为了将文件扩展名从 JPG 更改为 jpg,我使用了
alias jprn="find -name '*.JPG' -exec rename "s/.JPG/.jpg/g" \{\} \;"
这会导致另一个“查找:非法选项--n”
不幸的是,这个错误相当神秘,所以我甚至不知道从哪里开始寻找解决方案,因为根据 man 的说法,所有的句柄似乎都是正确的。
任何信息或指点都将不胜感激!
谢谢
答案1
对于mup
,find
需要一个path
参数:
alias mup='find . -type f -exec mv {} . \;'
对于jprn
,find
需要一个path
参数。此外,macOS 中没有rename
命令(您可以使用自制不过)。这是我目前能想到的最好的办法:
alias jprn='find . -name "*.JPG" -print | while read -r f; do mv "$f" "${f/%JPG/jpg}"; done'
${f/%JPG/jpg}
用替换$f
结尾,请参阅 中“参数扩展”一节的最后一部分。JPG
jpg
man zshexpn