Страница 11 из 14

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 29 июл 2010, 13:21
arxey
Сохранил кеш в tar-архив (3,7Гб). Не могу разархивировать - пишет ошибку. Есть ли софт для востановления битых таров по аналогии с zip и rar? Или есть другой метод - ведь данные там не сжаты!?

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 26 авг 2010, 20:25
Parasite
arxey писал(а):Сохранил кеш в tar-архив (3,7Гб). Не могу разархивировать - пишет ошибку.

Прикажете сидеть и догадываться о тексте оной?

arxey писал(а):Есть ли софт для востановления битых таров по аналогии с zip и rar?

Откуда такая уверенность в "битом таре"?

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 27 авг 2010, 07:59
arxey
Parasite писал(а):Прикажете сидеть и догадываться о тексте оной?
Откуда такая уверенность в "битом таре"?

WinRar пишет: "Архив поврежден"
7zip: "Не удалось открыть файл cache.tar как архив"
PowerArchiver2007 - просто молча сбрасывает процесс разархивации.
Но правда 1 единственный файл извлекается.
Пробовал переименовывать, перемещать в корень диска, менять расширение - все бесполезно.

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 27 авг 2010, 11:02
Parasite
arxey писал(а):
Parasite писал(а):Прикажете сидеть и догадываться о тексте оной?
Откуда такая уверенность в "битом таре"?

WinRar пишет: "Архив поврежден"
7zip: "Не удалось открыть файл cache.tar как архив"
PowerArchiver2007 - просто молча сбрасывает процесс разархивации.
Но правда 1 единственный файл извлекается.
Пробовал переименовывать, перемещать в корень диска, менять расширение - все бесполезно.

Если Вы создали его согласно первого поста данной темы - то у Вас TGZ (tar+gzip) архив, а не чистый TAR. Расширение у него соответственно должно быть .tgz, а не .tar (это тоже написано в первом посте темы). При попытке открыть .tgz как .tar - будет еррор, так как не учтется наличие компрессии в tgz и распаковщику будет рвать шаблон от таких данных.

Попробуйте сменить расширение на правильное и попробовать открыть заново. Если не поможет - сделайте листинг архива средствами самого тара, если все будет в порядке - значит проблема в распаковщиках, а не в контейнере.

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 28 авг 2010, 23:23
Papazol
Попробовал написать оболочку для bsdtar. Заточено под задачу перемещения кэша.

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 29 авг 2010, 00:28
zed
О, неплохо. Только хотелось бы ещё чтоб прога сама искала и запускала bsdtar из той директории откуда она сама запущена. Т.е. докинули этот GUI до кучи к тару и не надо беспокоиться и закидывать тар в системные папки или прописывать его в path. Плюс, добавить архивирование без сжатия и вызывать не батник tarz.bat, а сразу bsdtar.exe и передавать ему нужные параметры.

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 30 авг 2010, 08:57
Parasite
zed писал(а):bsdtar.exe и передавать ему нужные параметры.

Кстати, если вдруг кто не знает - tar нативно может разбивать свои архивы на части указанного размера:

Запаковка:
Код: Выделить всё
tar -c -M --tape-length=102400 --file=disk1.tar BIGFILE

будет делать 100мб-куски архива из папки BIGFILE (с переспрашиванием имени каждого куска) по типу "Prepare volume #2 for disk1.tar and hit return". Если нужно изменить имя второй части (например на disk2.tar) - то надо ответить "n disk2.tar", итд.

Распаковка:
Код: Выделить всё
tar -x -M --file=disk1.tar BIGFILE
Prepare volume #2 for disk1.tar and hit return: n disk2.tar
Prepare volume #2 for disk2.tar and hit return:

:)

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 30 авг 2010, 21:55
Papazol
Очень интересная штука этот bsdtar... Задачу по перемещению исполняемого файла в папку с оболочкой мне правильно решить не удалось, так как если путь к этому файлу (или к этой папке) содержит пробелы, то cmd этого не понимает. Искал, читал, вычитал, что надо подобные пути заключать в кавычки. Надо будет попробовать, хотя пока непонятно, что именно надо заключать в кавычки: всю команду или не всю...
И ещё одна загвоздка. Почему-то при попытке архивировать без сжатия выдаётся ошибка.
Изображение
Наверно, я неправильно записываю командную строку. Я пишу так:
Код: Выделить всё
bsdtar.exe -сf targetfile folder

где targetfile - путь и название архива, folder - название папки, которую надо заархивировать.
Причём команды, архивирующие со сжатием
Код: Выделить всё
bsdtar.exe -cvz -f targetfile folder
и
Код: Выделить всё
bsdtar.exe -cvz --file=targetfile folder

выполняются правильно. Во всех случаях рабочая директория - на ступень выше папки folder, например, если нужная папка находится по пути
X:\SASPlanet\cache\folder, то рабочая директория - X:\SASPlanet\cache.

Нашёл! Как всегда, причина - кривые руки. Буква "с" была набрана кириллицей.

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 30 авг 2010, 22:39
zed
Задачу по перемещению исполняемого файла в папку с оболочкой

Зачем? Пользователь сам положит её в эту папку. Просто в команде вызывать не bsdtar, а "путь откуда нас запустили\bsdtar.exe".

если путь к этому файлу (или к этой папке) содержит пробелы, то cmd этого не понимает. Искал, читал, вычитал, что надо подобные пути заключать в кавычки. Надо будет попробовать, хотя пока непонятно, что именно надо заключать в кавычки: всю команду или не всю...

Для надёжности, все пути надо делать в кавычках (а не команды).
Пример:
Код: Выделить всё
"some path\bsdtar.exe" -сf "some path\targetfile" "folder"

В общем случае и в имени папки могут быть пробелы, так что и его надо в кавычках делать.

Re: Решение проблемы перемещения кэша

СообщениеДобавлено: 31 авг 2010, 00:06
Papazol
zed писал(а):Зачем? Пользователь сам положит её в эту папку. Просто в команде вызывать не bsdtar, а "путь откуда нас запустили\bsdtar.exe".

Конечно, именно это я и имел в виду. В данном случае перемещение - из папки Windows в другую папку, не относящуюся к path. Это удалось сделать.

zed писал(а):Для надёжности, все пути надо делать в кавычках (а не команды).
Пример:
Код: Выделить всё
"some path\bsdtar.exe" -сf "some path\targetfile" "folder"

В общем случае и в имени папки могут быть пробелы, так что и его надо в кавычках делать.

Теперь всё понятно. Да, чтобы писАть на каком-либо языке, надо как минимум этот язык знать. Не забыть бы теперь всё это.
Вот новый вариант оболочки. Файл bsdtar.exe должен находиться в одной папке с оболочкой.