Se zástupným znakem to nebude fungovat. Musíte specifikovat. (aktuální adresář), pokud máte na mysli celý adresář včetně skrytých souborů. Můžete to udělat
tar -cvpzf test.tgz .
Odpověď je, že *
zástupný znak je zpracováván shellem a jen se nerozšíří na věci, které začínají tečkou. Druhý zástupný znak ?
také se nerozšíří na věci, které začínají tečkou. Díky Keithovi za upozornění, že expanzi provádí shell, takže to nemá nic společného s tar
.
Pokud používáte shopt -s dotglob
pak rozšíření bude zahrnovat věci jako .filename
. Díky Andy.
Použijte shopt -u dotglob
vypnout.
Přepínání dotglob
volba se nemění ls
sám. Spíše to jen změní chování rozšíření, jak je znázorněno v něčem jako ls *
.
Edit:Moje doporučení jsou v komentáři níže.
Můžete použít:
tar -cvpzf test.tgz * .??*
Toto však funguje pouze pro skryté soubory s názvy> 2 (aby se zabránilo '.' a '..')