[英]Recursively recode all project files excluding some directories and preserving permissions
如何以递归方式重新编码所有项目文件( 不包括某些目录和保留权限) ?
基于这个问题,但是它的解决方案没有保留权限,因此我不得不对其进行修改。
警告 :由于递归删除是解决方案的一部分,因此使用此方法后果自负
任务:
以递归方式重新编码所有项目文件(iso8859-8-> utf-8),但不包括 '.git'和'.idea'目录和保留权限 。
解决方案(对我而言效果很好):
备份项目的目录,然后在其中进行cd
。 跑:
find . -not -path "./.git/*" -not -path "./.idea/*" -type f -print -exec iconv -f iso8859-8 -t utf-8 -o {}.converted {} \\; -exec sh -c 'cat {}.converted > {}' \\; -exec rm {}.converted \\;
二进制和图像文件不是文本,因此将无法重新编码,因此“ image.jpeg.converted”等文件将与“ image.jpeg”一起保留。 要清理此混乱情况:
find . -not -path "./.git/*" -not -path "./.idea/*" -type f -regex '.*\\.converted' -exec rm {} \\;
在执行此操作之前,您可能只希望打印(不使用rm
)以查看仅列出了您确实要删除的那些文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.