Назад | Перейти на главную страницу

Архивировать папку, но включать только папки с числовыми именами?

У меня очень беспорядочная папка, в которой находятся тысячи файлов и каталогов. Я хотел бы создать Zip-файл, который содержит только некоторые папки (и файлы в этих папках) - в частности, те папки, которые имеют только числовые имена (104, 2342 и т. Д.).

Я не могу понять, как это сделать - есть предложения?

Я использую Linux, а точнее CentOS :)

Работает ли это для вас:

 zip -ry archive.zip [0-9]*

Запустите каталог, содержащий это:

001  002  100  200  aaa  bbb

он создает zip-архив только из пронумерованных каталогов:

$ unzip -l archive.zip 
Archive:  archive.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2010-10-19 22:27   001/
        0  2010-10-19 22:27   002/
        0  2010-10-19 22:41   100/
        0  2010-10-19 22:41   100/10000/
        0  2010-10-19 22:41   100/10000/a.txt
        0  2010-10-19 22:41   100/10000/10000.txt
        0  2010-10-19 22:27   200/
---------                     -------
        0                     7 files

То есть в zip-архив помещаются только нумерованные файлы / каталоги верхнего уровня.

ОБНОВИТЬ Чтобы исключить файлы из верхнего уровня:

найти . -maxdepth 1 -type f> excluded.files

внимательно просмотрите файл excluded.files. Затем:

zip -ry test.zip [0-9] * -x@excluded.files

Использовать find с участием -regex или тому подобное, чтобы выяснить, какие имена папок являются числовыми, затем используйте zip -@ для чтения отфильтрованного списка имен файлов, переданных по конвейеру find.