У меня очень беспорядочная папка, в которой находятся тысячи файлов и каталогов. Я хотел бы создать 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
.