一部のディレクトリを除いてすべてのプロジェクト ファイルを再帰的に再コーディングし、アクセス許可を維持する方法は?
1 に答える
この質問に基づいていますが、その解決策ではアクセス許可が保持されないため、変更する必要がありました。
警告: 再帰的な削除はソリューションの一部であるため、自己責任で使用してください
仕事:
'.git' および '.idea' ディレクトリを除き、パーミッションを保持しながら、すべてのプロジェクト ファイル (iso8859-8 -> utf-8)を再帰的に再コーディングします。
解決策(私の場合はうまくいきました):
プロジェクトのディレクトリをバックアップしてから、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
本当に削除したいファイルだけがリストされていることを確認するために、(なしで) 印刷することをお勧めします。