在Linux系统上,我有很多带有jpg文件的文件夹。但是我不小心使用了在Windows中创建的sh文件移动了它们。
因此,如果运行ls命令,则不需要像这样的文件和结构:
media/mugs/mug1.jpg
media/mugs/mug2.jpg
media/mugs/mug3.jpg
media/plates/plate1.jpg
media/plates/plate2.jpg
media/plates/plate3.jpg
相反,如果我运行ls命令,它们将显示以下内容,并在开头显示一个',在结尾显示'$'\ r':
media/mugs/'mug1.jpg'$'\r'
media/mugs/'mug2.jpg'$'\r'
media/mugs/'mug3.jpg'$'\r'
media/plates/'plate1.jpg'$'\r'
media/plates/'plate2.jpg'$'\r'
media/plates/'plate3.jpg'$'\r'
我无权访问安装程序,因此未安装重命名,因此我只能访问诸如find和mv之类的内置程序。
非常感激
使用前进行测试。
find media -name '*'$'\r' -print0 |
while IFS= read -r -d '' file
do mv "$file" "${file%?}"
done
有关删除最后一个字符的语法以及用于读取以find的结尾的文件名的选项,请参阅参数扩展man bash
部分。${parameter%word}
help read
-r
-d ''
\0
print0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句