hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..

Как создать zip архив в Linux со скрытыми файлами и директориями?

Набросал простой скрипт для резервного копирования некоторых файлов и папок в домашней папке. Но вовремя заметил, что скрытые файлы и директории(начинающийся с точки) по умолчанию не добавляются в архив.
zip -r -9 backup-`date +"%d-%m-%Y_%H.%M"`.zip /home/sergey/* \
	-x "/home/sergey/.cache/*" \
	-x "/home/sergey/VM/*" \
	-x "/home/sergey/SeleniumProfile/*" \

Разумеется, смотрел справку, гуглил - в статьях кто-то говорит что нужно точку со звёздочкой поставить, кто-то просто точку в параметрах - ничего не работает.
Копирую примеры из гугла - zip мне выдает:
zip error: Zip file structure invalid (.)
  • Вопрос задан
  • 739 просмотров
Решения вопроса 2
Попробуйте так:

zip -r -9 backup-`date +"%d-%m-%Y_%H.%M"`.zip /home/sergey/.
Ответ написан
hottabxp
@hottabxp Автор вопроса
Сначала мы жили бедно, а потом нас обокрали..
Мне кажется, или zip (или bash) нелогично себя ведет.
Решил проблему методом тыка:
вместо пути /home/sergey/* прописал /home/* - и все скрытые файлы и папки добавились в архив.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
smorman
@smorman
When In Rome do as The Romans do...
Пример
Исходные данные:
- имеем папку test
в ней скрытая папка .test и скрытые файлы: .bash_history и .bash_test

Задача:
- сделать архив .zip с находящимися в папке test файлами: .bash_history, .bash_test и скрытой папкой .test

Выполнение:
$ cd test
:~/test$ ls -a
:~/test$ .  ..  .bash_history  .bash_test  .test
:~/test$ zip test . -9 -r
  adding: .bash_test (stored 0%)
  adding: .bash_history (stored 0%)
  adding: .test/ (stored 0%)
:~/test$ ls
test.zip


Проверяем архив:
:~/test$ unzip -l test.zip | awk -F'/' 'NF<3 && !$2'
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       11  2020-10-31 14:05   .bash_test
       11  2020-10-31 14:05   .bash_history
        0  2020-10-31 14:08   .test/
---------                     -------
       22                     3 files


Заметь!
Точка - . в коде zip test . -9 -r
как раз и есть операнд для архивирования скрытых файлов и каталогов...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы