
В моем тесте структура папок выглядит следующим образом:
D:\Data\1.db
D:\Data\2.db
D:\Data\3.db
D:\Data\FolderA\1.db
D:\Data\FolderA\2.db
D:\Data\FolderA\3.db
Это простой пример моей сложной реальной ситуации. Я использую список включения для резервного копирования только файлов .db
(и многих других типов файлов), но я не хочу, чтобы НИКАКИЕ подкаталоги были заархивированы, но я могу не знать имен подкаталогов.
Итак, вопрос в следующем: как сжать файлы с помощью списка включения, исключив при этом все подкаталоги, если имена подкаталогов неизвестны?
Я попробовал следующее из моей D:\Data
папки, результаты в скобках
7za a -t7z D:\Backups\data.zip -r- -ir@"D:\data\include.txt" :: (sub-dirs included)
Я изменил -r-
строку выше на строку ниже с результатами в скобках
-xr- [incorrect command line]
-xr-!* [nothing zipped]
-xr!* [nothing zipped]
решение1
Нашел ответ, процитированный ниже. Если вы хотите использовать7-молния, то, похоже, самая сложная часть заключается в том, чтобы убедить его не выполнять рекурсию; указанный в документации -r-
переключатель, по-видимому, нефункционален, и предлагаемый автором программного обеспечения обходной путь заключается в исключении подкаталогов с помощью подстановочного выражения -x!*/
в Linux и -x!*\
Windows.