Вы ищете аргумент --exclude
.
--exclude=PATTERN
Некоторые пользователи считают, что опции exclude
сбивают с толку. Вот некоторые распространенные подводные камни:
Основной режим работы tar
не влияет на имя пути
явно указан в командной строке, если один из его имени файла
компоненты исключены. В приведенном выше примере, если вы создаете
архивировать и исключать файлы, которые заканчиваются на *.o
, но явно указывают
файл dir.o/foo
после того, как все параметры были перечислены,
dir.o/foo
будет исключен из архива.
Вы можете иногда путать значения --exclude=PATTERN
и
--exclude-from=FILE-OF-PATTERNS
(-X FILE-OF-PATTERNS
). Быть
осторожно: используйте --exclude=PATTERN
, когда исключаемые файлы
дано как шаблон в командной строке. использование
--exclude-from=FILE-OF-PATTERNS
ввести имя файла
который содержит список шаблонов, по одному на строку; каждый из них
шаблоны могут исключать ноль, один или несколько файлов.
Когда вы используете --exclude=PATTERN
, обязательно указывайте ШАБЛОН
параметр, поэтому GNU tar
видит символы подстановки, такие как *
. если ты
не делайте этого, оболочка может расширять саму *
, используя файлы
под рукой, поэтому tar
может получить список файлов вместо одного
шаблон, или его вообще нет, что делает команду несколько незаконной.
Это может не соответствовать тому, что вы хотите.
Например, напишите:
$ tar -c -f ARCHIVE.TAR --exclude '*.o' DIRECTORY
вместо:
$ tar -c -f ARCHIVE.TAR --exclude *.o DIRECTORY
- Вы должны использовать использовать синтаксис оболочки или globbing вместо
regexp
синтаксис, при использовании параметров исключения в tar
. Если вы попытаетесь использовать
regexp
синтаксис для описания файлов, которые нужно исключить, ваша команда
может потерпеть неудачу.