Решение проблемы перемещения кэша
Модератор: Tolik
-
arxey
- Постигающий Дао
- Сообщения: 139
- Зарегистрирован: 15 сен 2008, 11:21
- Благодарил (а): 10 раз
- Поблагодарили: 22 раза
Re: Решение проблемы перемещения кэша
Сохранил кеш в tar-архив (3,7Гб). Не могу разархивировать - пишет ошибку. Есть ли софт для востановления битых таров по аналогии с zip и rar? Или есть другой метод - ведь данные там не сжаты!?
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Решение проблемы перемещения кэша
arxey писал(а):Сохранил кеш в tar-архив (3,7Гб). Не могу разархивировать - пишет ошибку.
Прикажете сидеть и догадываться о тексте оной?
arxey писал(а):Есть ли софт для востановления битых таров по аналогии с zip и rar?
Откуда такая уверенность в "битом таре"?
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


-
arxey
- Постигающий Дао
- Сообщения: 139
- Зарегистрирован: 15 сен 2008, 11:21
- Благодарил (а): 10 раз
- Поблагодарили: 22 раза
Re: Решение проблемы перемещения кэша
Parasite писал(а):Прикажете сидеть и догадываться о тексте оной?
Откуда такая уверенность в "битом таре"?
WinRar пишет: "Архив поврежден"
7zip: "Не удалось открыть файл cache.tar как архив"
PowerArchiver2007 - просто молча сбрасывает процесс разархивации.
Но правда 1 единственный файл извлекается.
Пробовал переименовывать, перемещать в корень диска, менять расширение - все бесполезно.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Решение проблемы перемещения кэша
arxey писал(а):Parasite писал(а):Прикажете сидеть и догадываться о тексте оной?
Откуда такая уверенность в "битом таре"?
WinRar пишет: "Архив поврежден"
7zip: "Не удалось открыть файл cache.tar как архив"
PowerArchiver2007 - просто молча сбрасывает процесс разархивации.
Но правда 1 единственный файл извлекается.
Пробовал переименовывать, перемещать в корень диска, менять расширение - все бесполезно.
Если Вы создали его согласно первого поста данной темы - то у Вас TGZ (tar+gzip) архив, а не чистый TAR. Расширение у него соответственно должно быть .tgz, а не .tar (это тоже написано в первом посте темы). При попытке открыть .tgz как .tar - будет еррор, так как не учтется наличие компрессии в tgz и распаковщику будет рвать шаблон от таких данных.
Попробуйте сменить расширение на правильное и попробовать открыть заново. Если не поможет - сделайте листинг архива средствами самого тара, если все будет в порядке - значит проблема в распаковщиках, а не в контейнере.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Решение проблемы перемещения кэша
Попробовал написать оболочку для bsdtar. Заточено под задачу перемещения кэша.
- Вложения
-
- bsdtar_GUI.zip
- (274.77 КБ) 615 скачиваний
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Решение проблемы перемещения кэша
О, неплохо. Только хотелось бы ещё чтоб прога сама искала и запускала bsdtar из той директории откуда она сама запущена. Т.е. докинули этот GUI до кучи к тару и не надо беспокоиться и закидывать тар в системные папки или прописывать его в path. Плюс, добавить архивирование без сжатия и вызывать не батник tarz.bat, а сразу bsdtar.exe и передавать ему нужные параметры.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Решение проблемы перемещения кэша
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:
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Решение проблемы перемещения кэша
Очень интересная штука этот bsdtar... Задачу по перемещению исполняемого файла в папку с оболочкой мне правильно решить не удалось, так как если путь к этому файлу (или к этой папке) содержит пробелы, то cmd этого не понимает. Искал, читал, вычитал, что надо подобные пути заключать в кавычки. Надо будет попробовать, хотя пока непонятно, что именно надо заключать в кавычки: всю команду или не всю...
И ещё одна загвоздка. Почему-то при попытке архивировать без сжатия выдаётся ошибка.

Наверно, я неправильно записываю командную строку. Я пишу так:
где targetfile - путь и название архива, folder - название папки, которую надо заархивировать.
Причём команды, архивирующие со сжатием
и
выполняются правильно. Во всех случаях рабочая директория - на ступень выше папки folder, например, если нужная папка находится по пути
X:\SASPlanet\cache\folder, то рабочая директория - X:\SASPlanet\cache.
Нашёл! Как всегда, причина - кривые руки. Буква "с" была набрана кириллицей.
И ещё одна загвоздка. Почему-то при попытке архивировать без сжатия выдаётся ошибка.

Наверно, я неправильно записываю командную строку. Я пишу так:
Код: Выделить всё
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.
Нашёл! Как всегда, причина - кривые руки. Буква "с" была набрана кириллицей.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Решение проблемы перемещения кэша
Задачу по перемещению исполняемого файла в папку с оболочкой
Зачем? Пользователь сам положит её в эту папку. Просто в команде вызывать не bsdtar, а "путь откуда нас запустили\bsdtar.exe".
если путь к этому файлу (или к этой папке) содержит пробелы, то cmd этого не понимает. Искал, читал, вычитал, что надо подобные пути заключать в кавычки. Надо будет попробовать, хотя пока непонятно, что именно надо заключать в кавычки: всю команду или не всю...
Для надёжности, все пути надо делать в кавычках (а не команды).
Пример:
Код: Выделить всё
"some path\bsdtar.exe" -сf "some path\targetfile" "folder"В общем случае и в имени папки могут быть пробелы, так что и его надо в кавычках делать.
- Papazol
- Гуру
- Сообщения: 2069
- Зарегистрирован: 04 дек 2009, 01:39
- Откуда: Рязань
- Благодарил (а): 73 раза
- Поблагодарили: 647 раз
Re: Решение проблемы перемещения кэша
zed писал(а):Зачем? Пользователь сам положит её в эту папку. Просто в команде вызывать не bsdtar, а "путь откуда нас запустили\bsdtar.exe".
Конечно, именно это я и имел в виду. В данном случае перемещение - из папки Windows в другую папку, не относящуюся к path. Это удалось сделать.
zed писал(а):Для надёжности, все пути надо делать в кавычках (а не команды).
Пример:Код: Выделить всё
"some path\bsdtar.exe" -сf "some path\targetfile" "folder"
В общем случае и в имени папки могут быть пробелы, так что и его надо в кавычках делать.
Теперь всё понятно. Да, чтобы писАть на каком-либо языке, надо как минимум этот язык знать. Не забыть бы теперь всё это.
Вот новый вариант оболочки. Файл bsdtar.exe должен находиться в одной папке с оболочкой.
- Вложения
-
- bsdtar_GUI.zip
- (275.08 КБ) 572 скачивания