繁体   English   中英

以递归方式重新编码所有项目文件(不包括某些目录和保留权限)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM