LINUX.ORG.RU

История изменений

Исправление 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 ведёт себя как вёл всегда).