Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 28.08.2018 18:25:34

Как создавая командой 7z архив пропустить подкаталоги?

Всем привет,
Можно ли под Kubuntu 18 создавая командой 7z архив пропустить подкаталоги?

Я нашел в описании ключ -x и пробовал:

7z a -v20m -xnode_modules.* -xvendor.*  /_diskE_Media/__Archieve/2018-08-28/TasksBs41_2018-08-28.zip  "/_wwwroot/lar/TasksBs41" 

Но получил ошибку :

Command Line Error:
Incorrect wildcard type marker
node_modules.*

А как правильно ?

Спасибо!

Не в сети

#2 29.08.2018 22:44:34

Re: Как создавая командой 7z архив пропустить подкаталоги?

7-zip и rar под *nix неадекватны, в сравнении с zip или тем более с tar. Какой смысл использовать его? (В твоем примере, кстати, ошибка - расширение не .zip, а .7z.)

Я советую tar + xz, а если система многоядерная, то tar + pixz.

# gz
tar czf arch.tar.xz --exclude node_modules --exclude vendor /_wwwroot
# xz
tar cJf arch.tar.xz --exclude node_modules --exclude vendor /_wwwroot
# pixz
tar -Ipixz -cf arch.tar.xz --exclude node_modules --exclude vendor /_wwwroot

Не в сети

#3 31.08.2018 17:43:41

Re: Как создавая командой 7z архив пропустить подкаталоги?

Как я понимаю в результатн будет файл arch.tar.xz ?
1) Что это за формат ? Он и под виндами может быть распакован ? смысл в том что это архивы - на всякий случай - и может быть не только рабочий linux...
2) А на тома tar распаковывать умеет?

Изменено mstdmstd (31.08.2018 17:45:55)

Не в сети

#4 31.08.2018 21:37:34

Re: Как создавая командой 7z архив пропустить подкаталоги?

Как я понимаю в результатн будет файл arch.tar.xz ?

Да. Расширение можно сделать короче - вместо .tar.xz просто .txz.

tar cJf arch.txz ...

.

1) Что это за формат ?

Обычный формат, тот же tar, только сжатый. Стандартно на Windows открывается теми же 7-Zip и WinRAR.

Под *nix tar'ом бекапы лучше делать, чем zip/7z, так как он сохраняет специфичные вещи типа флагов доступа, владельцев, символических ссылок и т.д. Единственный минус - если надо из большого архива вытащить один файл, то это будет долго (в худшем случае по времени равно извлечению всего архива).

и может быть не только рабочий linux...

tar можно даже на Android распаковать, правда, из-за высокого сжатия смартфон может сам себя поджарить.

2) А на тома tar распаковывать умеет?

Нет, для этого используют отдельную команду split через связку команд (pipe):

tar zc --exclude foo /_wwwroot ... | split -b100M - arch.txz.
tar c --exclude foo /_wwwroot ... | pixz | split -b100M - arch.txz.

В результате получим файлы максимум по 100 Мб, с именами arch.txz.aa, arch.txz.ab (.ac ... .ba .bb ... .zz). Можно переключить с буквенных суффиксов на числовые:

... | split -d -b100M arch.txz.

Получим arch.txz.00, .01, ...

Собрать тома обратно можно банально через cat (tar tv = вывод содержимого архива и его проверка):

cat arch.txz.* | tar ztv
cat arch.txz.* | pixz -d | tar tv

Можно и recovery record добавить, как в WinRAR, только это делается отдельной командой (запускать уже после того как все тома заархивируются):

par2 c -n1 -r5 arch.txz.*

-r5 = максимум 5% томов может быть битыми, потом их нельзя будет восстановить.

В итоге имеем тома arch.txz.aa .ab ... и файл с recovery record arch.vol... (файл .par2 можно удалять).

Посмотри эту тему, там тоже про бекапы говорилось, в частности, как их можно в одну команду перекидывать на другой хост через ssh.

Не в сети

Подвал раздела