/var/www/
)压缩到~/www_backups/$time.tar
,其中$time
是当前日期。这是我拥有的内容:
cd /var/www && sudo tar -czf ~/www_backups $time"
我完全迷路了,现在已经呆了几个小时了。不确定
-czf
是否正确。我只想将/var/www
中的所有内容复制到$time.tar
文件中,并且我想维护所有文件的文件权限。有人可以帮我吗?#1 楼
对于文件夹tar
和gzip
,语法为:tar czf name_of_archive_file.tar.gz name_of_directory_to_tar
带有
-
的czf
是可选的。如果要对当前目录进行
tar
,请使用.
来指定。要动态构造文件名,请使用
date
实用程序(有关可用的格式选项,请参见其手册页)。例如:cd /var/www &&
tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .
这将创建一个名为
20120902-185558.tar.gz
的文件。在Linux上,您的
tar
可能还支持j
而不是z
选项的BZip2压缩。可能还有其他。检查本地系统上的手册页。评论
太好了,谢谢。我有一个小问题。创建/ var / www的tar文件后,将其放置在tar文件的/ var / www目录中。这是我现在使用的代码sudo tar -czf〜/ www_backups / $ time.tar / var / www /“想象一下,我在/ var / www内部有一个名为test.txt的文件。在制作了该文件的tar副本之后,当我提取它时,它将被放置在/ var / www目录中,这有意义吗?我希望它确实有点难以解释。我将检查BZip2支持,谢谢您的建议!
– qwerty
2012年9月2日于17:27
这就是为什么首先要CD到要打包的目录,然后是tar cf file.tar的原因。 -最后。而不是指定完整路径将使存档内的路径相对于当前目录。您还可以将-C选项用于tar(请参见手册页)。
–垫子
2012年9月2日于17:29
是的,效果更好。谢谢,谢谢!
– qwerty
2012年9月2日于17:33
@Qwertylicious -f(从手册页)从指定文件读取归档文件或将归档文件写入指定文件。文件名可以是-用于标准输入或标准输出。
–科洛布峡谷
16-12-27在20:02
在最新版本的tar中,大写字母J(而不是z)将使用xz LZMA2压缩。
–teeks99
17年4月13日在15:04
#2 楼
最常见压缩算法的示例问题的标题就是“用tar压缩文件夹?”由于该标题非常笼统,但问题和答案更为具体,并且由于该问题吸引了很多意见,因此我认为添加两个示例的最新列表将是有益的。存档/压缩和提取/解压缩,以及各种常用的压缩算法。
这些已在Ubuntu 18.04.4中进行了测试。它们对于一般用途非常简单,但是可以使用上面接受的答案和有用的注释中的技术轻松地集成到OP的更具体的问题内容中。
对于更广大的读者来说,需要注意的一点是
tar
不会自动添加必要的扩展名(例如.tar.gz
)-用户必须显式添加扩展名,如以下命令所示:# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball
tar cvf filename.tar *
# 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory
tar xvf filename.tar
# 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip
tar cvzf filename.tar.gz *
# 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory
tar xvf filename.tar.gz # Note: same options as 2 above
# 5: tar (create bzip2'ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2
tar cvjf filename.tar.bz2 * # Note: little 'j' in options
# 6: Untar (extract bzip2'ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory
tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above
# 7: tar (create xz'ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz
tar cvJf filename.tar.xz * # Note: capital 'J' in options
# 8: Untar (extract xz'ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory
tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above
请参阅tar手册页(最好在特定计算机上使用
man tar
)有关更多详细信息。下面我直接从手册页中总结了上面使用的选项:-c,--create
创建一个新的存档
-x,--extract,--get
从存档中提取文件
-v,--verbose
详细列出已处理的文件
-z,--gzip
通过gzip过滤存档j,--bzip2
通过bzip2
-J,--xz
过滤档案,通过xz
-f,--file = ARCHIVE
过滤档案存档文件或设备ARCHIVE
无需在组合选项前添加
-
,也无需在=
选项和文件名之间添加f
符号。我最近的文章中提供了所有这些信息,由于我有时间进行研究,因此将其扩展为更全面的文章。
评论
您还需要在$ time的另一端添加一个“。