ablog

不器用で落着きのない技術者のメモ

絶対パスでとってしまった tar アーカイブを相対パスに展開する

Solaris では pax コマンドを使うと、絶対パスでとってしまった tar アーカイブ相対パスに解凍できる。


書式)

pax -rvs ',^/,./,' -f hoge.tar


試してみる。
ディレクトリを作成して、

% mkdir -p tmp/{a,b,c}
% find tmp
tmp
tmp/a
tmp/b
tmp/c

絶対パスで tar アーカイブを作成して、

% tar cvf tmp.tar /export/home/oracle/tmp
a /export/home/oracle/tmp/ 0K
a /export/home/oracle/tmp/a/ 0K
a /export/home/oracle/tmp/b/ 0K
a /export/home/oracle/tmp/c/ 0K

pax コマンドで相対パスに展開して

% pax -rvs ',^/,./,' -f tmp.tar
USTAR format archive
/export/home/oracle/tmp
/export/home/oracle/tmp/a
/export/home/oracle/tmp/b
/export/home/oracle/tmp/c

確認してみると、

% find export
export
export/home
export/home/oracle
export/home/oracle/tmp
export/home/oracle/tmp/a
export/home/oracle/tmp/b
export/home/oracle/tmp/c

相対パスに解凍できてる。


[参考]
バックアップファイルからの/usr復元について -SUNのNetraT1において、- UNIX・Linux | 教えて!goo
http://docs.sun.com/app/docs/doc/806-0624/6j9vek5ci?l=ja&a=view