архивирование (ubuntu tar) скрытые каталоги

tar на директории mydir будет архивировать скрытые файлы и скрытые подкаталоги, но tar из внутри mydir с * подстановки не будет. Это давняя и известная несогласованность или ошибка?

Edit (дополнительная информация): tar изнутри mydir с подстановочным знаком не будет "видеть" ни архивировать скрытые файлы и скрытые подкаталоги в немедленно. Однако, в скрытых подкаталогах mydir скрытые файлы и скрытые подкаталоги будут заархивированы.

6 ответов


С подстановочным знаком это не сработает. Вы должны уточнить . (текущий каталог) если вы имеете в виду полный каталог, включая скрытые файлы. Вы можете сделать

tar -cvpzf test.tgz .

вы можете использовать:

tar -cvpzf test.tgz * .??*

но это работает только для скрытых файлов с именами > 2 (чтобы предотвратить '.' и.' .')


ответ * подстановочный знак обрабатывается оболочкой, и он просто не расширяется до вещей, которые начинаются с точки. Другой подстановочный знак ? также не расширяется до вещей, которые начинаются с точки. Спасибо Киту за указание, что это оболочка, которая делает расширение, и поэтому она не имеет ничего общего с tar.

если вы используете shopt -s dotglob тогда расширение будет включать такие вещи, как .filename. Благодаря Энди.

использовать shopt -u dotglob, чтобы включить его выключено.

включение dotglob опция не меняется . Скорее это просто изменяет поведение расширения, как показано в чем-то вроде ls *.

Edit: мои рекомендации приведены в комментарии ниже.


оболочка расширяет подстановочные знаки, так что tar даже не видит его. Вы должны добавить их явно, если хотите это сделать. (.*). Тем не менее, чаще всего tar один каталог, так что когда вы untar все это идет в одно и то же место.


shopt -s dotglob

это


вы можете сжать все файлы / папки в текущем каталоге (в том числе .скрытый) с помощью:

tar -zcvf compressed.tgz `ls -A -1`

последний аргумент-это папки, которые вы хотите сжать. Если вы пройдете его ls -A -1 , вы передаете все папки в текущем каталоге, но . и .. . Когда дело доходит до подкаталогов .скрытые файлы уже включены в сжатие по умолчанию.