shell

ドットファイルも含めてtarする方法

tarコマンドは、ドットファイルを無視します。
こんな感じで.testrcファイルは無視されます。

$ ls -a test
.	..	.testrc	test
$ tar cfz test.tar.gz test/*
$ tar tfz test.tar.gz
test/test
$ 

バックアップ用途の場合、ドットファイルだけがバックアップされていないのは致命的です。

ドットファイルを含めてtarにする

ドットファイルを含めてtarファイルにアーカイブするには明示的にファイルを指定する必要があります。
空のディレクトリは、無視されてしまいますが、以下のようにするとドットファイルを含めてtarできます。

$ ls -a test
.	..	.testrc	test
$ tar cfz test2.tar.gz `find test -type f`
$ tar tfz test2.tar.gz
test/.testrc
test/test
$ 

tarのオプションでドットファイルを含めるようにできないかな…

コメント

  1. eban より:

    ワイルドカードの*がドットファイルにマッチしないのが原因で、
    tarが無視してるわけはありません。
    $ tar cfz test.tar.gz test
    ならtest/以下全部が対象になります。

  2. ksaito11 より:

    ebanさん

    コメントありがとうございます。
    確かに、おっしゃるとおりでした。
    ディレクトリ指定でドットファイルもアーカイブされました。

    $ tar cfz test3.tar.gz test
    $ tar tfz test3.tar.gz
    test/
    test/.test
    test/test
    $

タイトルとURLをコピーしました