Intereting Posts
настройка sftp пользователей только вторые экземпляры sshd SAMBA Share – запретить пользователю удалять файл Как я могу предоставить права владения группе, когда применяются ACL POSIX? Почему journalctl говорит «- нет записей -»? Как включить интерфейс для прослушивания многоадресной рассылки? Как безопасно скопировать 5 самых последних файлов в локальный каталог Escape строки, отправленные в curl-данные при использовании приложения / json Помещение предупреждающего флага на определенную версию Проблема сохранения стандартного вывода в переменную Как установить стоп-бит в миникомпьюте? Как удалить несколько файлов с помощью sftp Показать / скрыть индекс истории в консоли Если я буду использовать curl –interface eth1, будет ли он использовать eth1 независимо от метрики? Пакетное переименование файлов с восходящим числом Планирование процессов реального времени в Linux

Содержит ли * скрытые файлы в tar, даже если dotglob не установлен?

У меня создалось впечатление, что * glob не соответствует файлам с префиксом dot-prefixed, если вы вручную не включите такую ​​функциональность (через dotglob или эквивалент вашей оболочки).

Но если у меня есть каталог, содержащий файлы file1 и .hidden1 , тогда, если я это сделаю

 tar -cvpjf backup.tar.bz2 --exclude 'a/*' a 

результирующий файл tar содержит только пустой каталог a и никакой след ни скрытого, ни скрытого файла. Мое предположение было бы исключено только из не скрытого file1 .

Что здесь происходит?

Во-первых, поскольку вы вложили подстановочный знак в одинарные кавычки, он расширяется с помощью tar вместо оболочки, поэтому его опция dotglob не будет иметь никакого эффекта.

tar ' * wildcard соответствует всем, включая точки и слэши (как указано в найденной документации ), поэтому вам придется исключать файлы, начиная с точки от исключения :

 tar -cvpjf backup.tar.bz2 --exclude 'a/[^.]*' a