MyTetra Share
Делитесь знаниями!
Как добавить в архив 7z скрытые (dot) файлы?
Время создания: 21.07.2025 16:58
Текстовые метки: linux, архив, архиватор, 7z, dot, точка, скрытый, файл, добавить, включить, заархивировать
Раздел: Компьютер - Linux - Архиваторы
Запись: xintrea/mytetra_syncro/master/base/1753106306ksdyjcavew/text.html на raw.github.com

В Linux, по-умолчанию, метасимвол звездочка "*" возварщает только обычные файлы. Скрытые dot-файлы в этот список не попадают. Поэтому при выполнении простой команды вида:



7z a -r имя_архива *



окажется, что внутри архива нет dot-файлов. Как это исправить?


Ответ: вместо простой звездочки "*", надо использовать две файловых маски. Первая маска - это сама звездочка "*". А вторая маска, которая указывается через пробел после первой, должна захватывать имена dot-файлов (каталогов), и выглядит так: ".[!.]*".



Внимание! В качестве файловой маски в 7z указываются мета-символы, а не регулярные выражения! Разбор мета-символов (они же glob-символы или символы глобализации) происходит по другим принципам, нежели регулярные выражения.



Маска ".[!.]*" будет захватывать имена файлов или директорий, которые начинаются на точку и содержат после этой точки как минимум один символ, который не является точкой. Таким образом отметаются имена "." и "..", которые могли бы нарушить правильный выбор файлов.


Итак, команда, которая будет укладывать в архив 7z все файлы и каталоги, включая dot-файлы и dot-каталоги, выглядит так:



7z a -r имя_архива * .[!.]*





Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования