mar*_*rio 91
GNU tar 依赖于 featuritis,所以自然也有一些选择。
http://www.gnu.org/software/tar/manual/html_node/transform.html
如果您只想删除几个路径段,那么--strip-components=nor--strip=n经常会这样做:
tar xvzf tgz --strip=1
Run Code Online (Sandbox Code Playgroud)
但是也可以使用正则表达式重写要提取的文件(标志是--transformor--xform并接受带有/x修饰符的ereg ):
tar xvzf tgz --xform='s#^[^/]+#.#x'
# or 's#^.+/##x' for discarding all paths
Run Code Online (Sandbox Code Playgroud)
要列出 tar,您需要附加--show-transformed选项:
tar tvzf tgz --show-transformed --strip=1 --xform='s/abc/xyz/x'
Run Code Online (Sandbox Code Playgroud)
我相信重写选项也适用于打包,而不仅仅是用于提取。但pax显然有更好的语法。
Mik*_*eyB 13
您可以通过两个步骤轻松完成。根据需要进行调整:
$ mkdir /tmp/dirtree
$ tar xfz /path/to/archive -C /tmp/dirtree
$ find /tmp/dirtree -type f -exec mv -i {} . \;
$ rm -rf /tmp/dirtree
Run Code Online (Sandbox Code Playgroud)
pax 可以做到:
pax -v -r -s '/.*\///p' < archive.tar
Run Code Online (Sandbox Code Playgroud)
或者
zcat archive.tar.gz | pax -v -r -s '/.*\///p'
Run Code Online (Sandbox Code Playgroud)
您可以先通过省略该-r选项来检查名称替换操作。
| 归档时间: |
|
| 查看次数: |
74076 次 |
| 最近记录: |