親ディレクトリを含まないXディレクトリをtarしたい

親ディレクトリを含まないXディレクトリをtarしたい
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、この問題は発生しないと思います。つまり、

cdusertarup ..で、前と同じよう.projectに tar ファイルの保存先を指定できます/var/...

それとも、したくない/できない理由があるのでしょうcduser?

関連情報