我有一个文件夹我正在变成一个tar文件,用于通过网络传输它看起来像这个
/foo/bar/file1
/foo/file2
/foo/baz/bin/file3
我想在没有目录信息的情况下提取它,因此提取的内容看起来像这样
file1
file2
file3
如何实现这一目标
答案 0 :(得分:2)
The GNU tar manual详细说明了--transform:
tar --show-transformed --transform 's,.*/,,' tfv myarchive.tar
tar --transform 's,.*/,,' xf myarchive.tar
答案 1 :(得分:1)
将Unix工具拼接在一起的Unix哲学怎么样? 像往常一样使用tar提取,然后
find foo -type f | xargs mv '{}' .
rm -rf foo # optional, nuke the empty dirs.
或find ... -print0
和xargs -0
的变体。