Yaq*_*ang 3 command-line file-extension batch-rename macos
我错误地.dcm在我的 Mac 上的所有文件上添加了扩展名,导致无法登录我的 iCloud 和我的钥匙链的存储。
一直非常渴望找到恢复其原始文件扩展名的解决方案,但我只找到了.abc用.def扩展名替换的答案,这不是我想要的。我想删除.dcm每个文件上添加的所有冗余扩展名。
有没有办法只删除所有文件上的 .dcm 扩展名(递归)?
这些是我发现的替换文件扩展的解决方案:
for file in *.abc; do mv "$file" "${file%.abc}"; done
for old in *.abc; do mv $old basename $old .abc.ef; done
Run Code Online (Sandbox Code Playgroud)
它们要么不是递归的,要么 Bash (3.2x) 说“错误替换”/“找不到命令”。
这应该这样做:
find / -type f -name '*.dcm' -exec sh -c 'mv -- "$0" "${0%.dcm}"' {} \;
Run Code Online (Sandbox Code Playgroud)
命令:
/*.dcm{})$0) 使用mv%)的.dcm使用字符串操作echo在前面放一个,mv看看它会做什么。
如果你想在没有子shell的情况下工作,你可以通过管道连接到while:
find / -type f -name '*.dcm' -print0 | while IFS= read -r -d '' filename; do
mv -- "$filename" "${filename%.dcm}"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |