如何在不保留目录结构的情况下tar目录?

时间:2011-04-17 19:29:02

标签: linux unix gnu tar

我正在编写一个备份脚本,并想要建立一个文件目录:

tar czf ~/backup.tgz /home/username/drupal/sites/default/files

这样可以解决这个问题,但是当我解压缩生成的文件时,它包含完整的文件结构:文件位于home/username/drupal/sites/default/files

有没有办法排除父目录,以便生成的tar只知道最后一个目录(files)?

9 个答案:

答案 0 :(得分:158)

使用--directory选项:

 tar czf ~/backup.tgz --directory=/home/username/drupal/sites/default files 

答案 1 :(得分:43)

嗨,当我进入指定目录时,我有一个更好的解决方案,这是不可能的(Makefile等)

tar -cjvf files.tar.bz2 -C directory/contents/to/be/compressed .

不要忘记最后的点(。)!!

答案 2 :(得分:32)

cd /home/username/drupal/sites/default/files
tar czf ~/backup.tgz *

答案 3 :(得分:2)

/home/myuser/workspace/zip_from/压缩所有txt(* .txt)文件 没有源文件目录结构的/home/myuser/workspace/zip_to/使用以下命令:

tar -P -cvzf /home/myuser/workspace/zip_to/mydoc.tar.gz  --directory="/home/myuser/workspace/zip_from/" *.txt

答案 4 :(得分:1)

创建tar归档文件

tar czf  $sourcedir/$backup_dir.tar --directory=$sourcedir WEB-INF en

在本地计算机上解压缩文件

tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/

上传到服务器

scp -r -i $privatekey $sourcedir/$backup_dir.tar $server:$deploydir/med365/
echo "File uploaded.. deployment folders"

在服务器上解压缩

ssh -i $privatekey $server tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/

答案 5 :(得分:0)

这对我有用:

gzip -dc "<your_file>.tgz" | tar x -C <location>

答案 6 :(得分:0)

对我来说-C或--directory无效,我用这个

cd source/directory/or/file
tar -cvzf destination/packaged-app.tgz *.jar
# this will put your current directory to what it previously was
cd -

答案 7 :(得分:0)

请使用以下命令生成没有目录结构的tar文件

tar -C <directoryPath> -cvzf <Path of the tar.gz file> filename1 filename2... filename N

例如:

tar -C /home/project/files -cvzf /home/project/files/test.tar.gz text1.txt text2.txt

答案 8 :(得分:-1)

tar -Cczf ~/backup.tgz /home/username/drupal/sites/default/files

-C为你做CD