我希望有人可以帮助我,我需要从cygwin系统上的几千个文件中删除空格(不能用下划线替换)。 我可以使用rename或mv以某种方式从shell执行此操作吗?
目前:
档案one.mp3
文件two.mp3
所有文件都需要成为:
fileone.mp3
filetwo.mp3
由于
答案 0 :(得分:1)
默认的Cygwin shell是bash,所以......
尝试使用此命令行,将$ DIR替换为您要在其下执行所述转换的目录,并检查输出:
find $DIR -type f -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done
如果您对要执行的命令感到满意,只需在mv之前删除echo并重复执行实际的重命名。请注意,这只会重命名文件,而不是目录。
答案 1 :(得分:0)
除了上面更改文件名的答案外,还有更改目录名的代码:
find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done
唯一的区别是该行开头的第四个参数。字母“f”变为“d”,分别对应文件和目录。