Невозможно исключить каталоги при использовании tar

здесь https://stackoverflow.com/a/35434714/5305907 описан способ делать то, что вы ищете. эффективно:

git diff -U1 | grepdiff 'console' --output-matching = hunk

Показывает только фрагменты, соответствующие заданной строке console.

1
21.03.2019, 15:35
1 ответ

Вы архивируете пути формы top-tree/stuffи исключаете пути формы /home/skrowten/top-tree/stuff. Ваши шаблоны исключения никогда ничему не соответствуют.

Простое решение

tar -czvf archive.tar.gz --exclude=top-tree/branch1/branch11/branch114 --exclude=top-tree/.git --exclude=top-tree/branch1/branch11/.idea top-tree

Обратите внимание, что если есть, например. a top-tree/subdir/top-tree/.git, то это тоже будет исключено. Уловка, чтобы избежать этого, состоит в том, чтобы начать путь командной строки с ./и полагаться на тот факт, что .всегда будет отображаться только в корне.

tar -czvf archive.tar.gz --exclude=./top-tree/branch1/branch11/branch114 --exclude=./top-tree/.git --exclude=./top-tree/branch1/branch11/.idea./top-tree

Если вас беспокоит начальный ./, добавьте параметр --transform='s!^\./!!'к вызову tar.

2
27.01.2020, 23:30

Теги

Похожие вопросы