tarコマンドの –strip-components と v の振る舞いがなんかイヤ

--strip-components--strip-path時の tar の気持ち悪いというか「使いにくい」仕様…。

今更だけど。

こうだとして:

1 me@host: _tmp$ pwd
2 /home/hhs/_tmp
3 me@host: _tmp$ ls -l ../Downloads/geos-3.4.2-3.fc22.src
4 合計 1788
5 -rw-rw-r--. 1 hhs hhs 1813726  9月 11  2013 geos-3.4.2.tar.bz2
6 -rw-r--r--. 1 hhs hhs     284  8月 17  2014 geos-gcc43.patch
7 -rw-r--r--. 1 hhs hhs    9185  8月 17  2014 geos.spec

まずはお約束:

1 me@host: _tmp$ tar cf - ../Downloads/geos-3.4.2-3.fc22.src | tar tvf --strip-components=1 -
2 tar: tar: メンバ名から先頭の `../' を取り除きます
3 --strip-components=1: open 不能
4 : そのようなファイルやディレクトリはありません

Unixに慣れている人が不審に思うか、不慣れな人が不審に思うかはわからんけれど、tar は GNU のでさえ引数のオプションの位置が緩くない、珍しいコマンドね(findもだけど)。

で、本題はこっち:

「v」(verbose)が –strip-components 指定を無視してしまうので効果がわからぬ
1 me@host: _tmp$ tar cf - ../Downloads/geos-3.4.2-3.fc22.src | tar tvf - --strip-components=1
2 tar: メンバ名から先頭の `../' を取り除きます
3 drwxrwxr-x hhs/hhs       0 2014-10-01 18:45 Downloads/geos-3.4.2-3.fc22.src/
4 -rw-r--r-- hhs/hhs    9185 2014-08-17 01:57 Downloads/geos-3.4.2-3.fc22.src/geos.spec
5 -rw-rw-r-- hhs/hhs 1813726 2013-09-11 19:54 Downloads/geos-3.4.2-3.fc22.src/geos-3.4.2.tar.bz2
6 -rw-r--r-- hhs/hhs     284 2014-08-17 01:57 Downloads/geos-3.4.2-3.fc22.src/geos-gcc43.patch
「v」(verbose)が –strip-components 指定を無視してしまうので効果がわからぬ
1 me@host: _tmp$ tar cf - ../Downloads/geos-3.4.2-3.fc22.src | tar xvf - --strip-components=1
2 tar: メンバ名から先頭の `../' を取り除きます
3 Downloads/geos-3.4.2-3.fc22.src/
4 Downloads/geos-3.4.2-3.fc22.src/geos.spec
5 Downloads/geos-3.4.2-3.fc22.src/geos-3.4.2.tar.bz2
6 Downloads/geos-3.4.2-3.fc22.src/geos-gcc43.patch
けれども処理結果は期待したもの
1 me@host: _tmp$ ls
2 geos-3.4.2-3.fc22.src

別にいいんだけどね、なんでこんな仕様なのか気になる。