Я хочу создать tarball структуры каталогов. Я знаю, что могу упаковать весь каталог, выполнив tar czvf testdir
или все файлы в нем с помощью tar czvf testdir/*
. Но я хочу исключить все файлы определенного расширения, которые встречаются где-либо в каталоге. Например, я хочу упаковать все файлы в той же структуре каталогов, но исключить все .pyc
файлы.
Это возможно?
решение1
Да, это возможно и просто.
Как упомянул Хастур, вам нужна следующая команда:
tar --exclude='*.pyc' czvf testdir.tgz testdir
И я хочу добавить, что если у вас есть вопрос о любой команде терминала, которую вы используете в Linux (или Mac OS X, если на то пошло), лучше всего начать с официальной документации. Введите man tar
и вы ее вытащите. Вы можете выполнить поиск по странице руководства (man page), набрав /searchterm
(and n
для следующего совпадения), и вы можете прокручивать страницу, используя f
и b
, d
и u
, или j
и k
в зависимости от того, насколько вы хотите прокрутить за один шаг.
"Но в некоторых случаях документация устарела на десятилетия!" Да, это так... и инструменты, которые вы используете, тоже. Они выдержали испытание временем. На самом деле, man-страница всегда должна быть ПЕРВЫМ средством, если у вас возникли проблемы.
Ввод man tar
с последующим /exclude
выполнением:
--exclude=PATTERN
exclude files, given as a PATTERN