tar cvf /var/lib/backup/sample.tar /home/user/.project
しかし、抽出するとその親も取得されます
/backup/
- /home/
- /user/
- .project/
user
この tar コマンドは、その親 (たとえば、その下の他のフォルダー) に何も含まれていないため、機能します。
これをプログラムで実行したいので、現在の作業ディレクトリを変更することは/home/user/
実際には選択肢ではありません。それを行うことは可能ですか?
答え1
tar する前にディレクトリ-C
に変更するオプションを使用するか、抽出時に使用することができます。/home/user
--strip-components 2
tar cvfC /var/lib/backup/sample.tar /home/user .project
# Note the space ^
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2
答え2
cd
ファイルを作成したいトップレベルのディレクトリに移動すればtar
、この問題は発生しないと思います。つまり、
cd
user
とtar
up ..で、前と同じよう.project
に tar ファイルの保存先を指定できます/var/...
。
それとも、したくない/できない理由があるのでしょうcd
かuser
?