lam*_*988 1 shell cygwin quoting wildcards rename
我试图将所有扩展名为“XLS;1”的文件重命名为“XLS”,但它不起作用。
我在 windows xp 中的 cygwin 中尝试了以下操作,但它们不起作用:
mv *.XLS;1 *.XLS
mv *.XLS\;1 *.XLS
mv "*.XLS;1" *.XLS
Run Code Online (Sandbox Code Playgroud)
问题不在于分号,你的第二个例子会解决这个问题。问题是,的Linux / Unix工具(以及由此延伸,Cygwin的)不采取该指令是指“在移动结尾的文件.XLS;1来.XLS,”我了解的Windows一样。您需要单独移动每个文件:
for file in *.XLS\;1; do
mv "$file" "${file%;1}"
done
Run Code Online (Sandbox Code Playgroud)
一个解释:
这.XLS;1会将所有以$file. 对于每个文件,我们告诉它$file通过;1切掉$file.
Nb 对于那些使用 zsh 的人,有一个很好的实用程序叫做zmv:
zmv '(*).XLS;1" "$1.XLS"
Run Code Online (Sandbox Code Playgroud)
根据您的设置,您可能需要先运行autoload zmv(也将其放入 .zshrc 中)。
| 归档时间: |
|
| 查看次数: |
6598 次 |
| 最近记录: |