История изменений
Исправление mord0d, (текущая версия) :
Как сделать чтоб папка осталась, а содержимое пошло в исключение?
% uname -srm
FreeBSD 12.1-RELEASE-p3 amd64
% tar --version
bsdtar 3.4.0 - libarchive 3.4.0 zlib/1.2.11 liblzma/5.2.4 bz2lib/1.0.8
testdir
└─ 1
├─ 1.f
└─ 2.f
% tar -cpzvvf - --totals --exclude='1/*.f' 1/ >test.tgz
a drwxr-x--- 2 mord0d mord0d 4 Jun 24 12:32 1
Total bytes written: 93
То есть маска должна быть не dir/*
, а dir/something*
, dir/*something
, dir/*something*
или dir/some*thing
, тогда прокатит.
Ещё можно извратиться с find(1) или ls(1) и пайпнуть их выхлоп в tar(1).
tar — tape archive, его задача — архивировать данные, а не inode, тем более не содержащие данных (в GNU решили иначе, но BSD tar ведёт себя как вёл всегда).
Исходная версия mord0d, :
Как сделать чтоб папка осталась, а содержимое пошло в исключение?
% uname -srm
FreeBSD 12.1-RELEASE-p3 amd64
% tar --version
bsdtar 3.4.0 - libarchive 3.4.0 zlib/1.2.11 liblzma/5.2.4 bz2lib/1.0.8
testdir
└─ 1
├─ 1.f
└─ 1.f
% tar -cpzvvf - --totals --exclude='1/*.f' 1/ >test.tgz
a drwxr-x--- 2 mord0d mord0d 4 Jun 24 12:32 1
Total bytes written: 93
То есть маска должна быть не dir/*
, а dir/something*
, dir/*something
, dir/*something*
или dir/some*thing
, тогда прокатит.
Ещё можно извратиться с find(1) или ls(1) и пайпнуть их выхлоп в tar(1).
tar — tape archive, его задача — архивировать данные, а не inode, тем более не содержащие данных (в GNU решили иначе, но BSD tar ведёт себя как вёл всегда).