我正在尝试将文件夹 ( /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
。效果czf
如下:
c
— 创建一个存档文件(与 extract 相反,它是x
)f
— 存档文件的文件名z
— 通过过滤存档gzip
(删除此选项以创建文件.tar
)
如果您想要tar
当前目录,请使用.
来指定。
要动态构造文件名,请使用该date
实用程序(请查看其手册页以了解可用的格式选项)。例如:
cd /var/www &&
tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .
这将创建一个名为类似20120902-185558.tar.gz
.
在 Linux 上,您很可能还使用not选项tar
支持 BZip2 压缩。可能还有其他人。检查本地系统上的手册页。j
z
答案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
查看焦油手册页man tar
(最好在您的特定机器上使用)了解更多详细信息。下面我直接从手册页总结了上面使用的选项:
-c, --create
创建一个新的存档-x, --extract, --get
从存档中提取文件-v, --verbose
详细列出已处理的文件-z, --gzip
通过 gzip 过滤存档-j, --bzip2
通过 bzip2 过滤存档-J, --xz
通过 xz 过滤存档-f, --file=ARCHIVE
使用归档文件或设备 ARCHIVE
无需-
在组合选项前面添加 ,也无需在选项和文件名=
之间添加符号。f
我从最近的经历中得到了这一切文章,当我有时间继续研究时,它将进一步扩展为一篇更全面的文章。