tarでアーカイブを作成する場合はフォルダの指定方法に注意!
tarでアーカイブをする時に、特定のフォルダをアーカイブする事は多々あると思う。
そういう時に、何も考えずにパスで指定すると、パスの構成そのままアーカイブされてしまう。文章で説明すると難しいので例を示す事にする。
カレントディレクトリ
/home/yato/
対象ディレクトリを含むフォルダの構造
/home/yato/hoge └── fuga └── moge └── moga ├── data.txt └── sub_dir └── sub.txt
この状況で moga フォルダをまるごとアーカイブスする場合を考えてみる。
tar cvzf moga.tar.gz hoge/fuga/moge/moga
これを展開するとカレントディレクトリに下記の構成でフォルダとファイルが展開される。
hoge └── fuga └── moge └── moga ├── data.txt └── sub_dir └── sub.txt
せめて、mogaというフォルダを基準にアーカイブして欲しいところ。 その場合は下記の通りオプションを指定すると良い感じになる。
tar cvzf moga.tar.gz -C hoge/fuga/moge moga
で、これを展開すると
moga ├── data.txt └── sub_dir └── sub.txt