我的文件位于以下目录中:import/images
Documents\ProductImages\1.jpg
Documents\ProductImages\2.jpg
Documents\ProductImages\3.jpg
如何Documents\ProductImages\
从文件名中删除?
答案1
你可以试试这个:
for i in 'Documents\ProductImages\'*.jpg; do mv -n -- "$i" "${i##*\\}"; done
扩展${i##*\\}
删除了与模式匹配的最长前缀,这里:直到最后一个反斜杠的所有内容都需要用另一个反斜杠进行转义。
答案2
rename
如果您的系统上有的话,通常是处理此类事情的正确工具。
我知道有两个可能的版本。它们具有不同的语法,但都可以适用于您的示例。
通常部署在 Red Hat 系列上的版本是这样的
rename 'Documents\ProductImages\' '' *.jpg
其他版本可以这样做
rename 's/.*\\//' *.jpg
这假设您只想保留最后一个之后的部分\
。如果你想更具体:
rename 's/^Documents\\ProductImages\\//' *.jpg