У меня есть папка с подпапками и файлами. Я создаю файл .zip через PowerShell Compress-Archive
.
Проблема в том, что файловая структура портится при открытии в Linux.
Bad - это архив bad.zip, созданный в Powershell с помощью Compress-Archive
, а Good is good.zip, созданный с помощью Windows WinRAR.
Вот как это выглядит в Linux: (слева плохо, справа хорошо)
Содержимое файла, видимое в Linux с помощью cat
: (слева плохо, справа хорошо):
Как решить эту проблему ??
...
Я попытался заменить все "\" в bad.zip на "/" в nano, и это сработало.
Я попытался автоматизировать это с помощью этого сценария, но безуспешно:
#!/bin/bash
contents=$(cat $1)
echo "${contents//\\//}"
Я запускаю скрипт:
./FixZip.sh bad.zip > new.zip
Обратные косые черты были заменены, как и предполагалось, но new.zip открыть нельзя. Причина, вероятно, в том, что кодировка другая ...
Это кодировка для zip-файлов:
terminal:# file -i bad.zip
bad.zip: application/zip; charset=binary
terminal:# encguess bad.zip
bad.zip UTF-32LE
terminal:# file -i new.zip
new.zip: application/octet-stream; charset=binary
terminal:# encguess new.zip
new.zip unknown
terminal:# cat new.zip
P5�WMCw:a_folder/test2.txt+��IP7�WM���a_folder/test3.txt�(*P4�WM��6a_folder/subf/test1.txt�H���P5�WMCw:a_folder/test2.txtP7�WM���7a_folder/test3.txt4�WM��6ma_folder/subf/test1.txtPKũ