将所有文件tar到目录

时间:2012-04-01 05:53:32

标签: tar

以下将解压缩/ root /目录中的文件。但它也会在root下创建父目录。我需要的是文件应该完全在根文件夹下,而不是在/ root / data / mysql /...中。

# tar -xvf company_raw_2012-02-22.tgz --directory=/root/
data/mysql/company_raw/data_archive_r_20120222.MYD
data/mysql/company_raw/data_archive_r_20120222.MYI
data/mysql/company_raw/data_archive_r_20120222.frm

如果无法做到这一点,如何编写程序将这些文件移动到所需的文件夹?

我尝试过以下操作,但确实有效。

--strip-components=3

但我不知道会有多少个文件夹。所以数字3可能会改变。

1 个答案:

答案 0 :(得分:2)

使用完整路径将所有内容解压缩到临时目录,然后将其移动到所需的目标位置?

destdir=/root
tmpdir=/root/tmp
rm -rf $tmpdir
mkdir $tmpdir
tar xf archive.tar.gz -C $tmpdir
find -H $tmpdir -type f -exec mv '{}' $destdir \;