如何只提取目标目录而不提取完整的目录树?
tar cf /var/www/site.tar /var/www_bak/site
Run Code Online (Sandbox Code Playgroud)
tar xf /var/www/site.tar -C /tmp
Run Code Online (Sandbox Code Playgroud)
这将产生:
/tmp/var/www/site
Run Code Online (Sandbox Code Playgroud)
提取文件时如何避免创建整个目录树?
我希望它提取到:
/tmp/site
Run Code Online (Sandbox Code Playgroud) 通常在使用mysqldump命令转储 MySQL 数据库后,我会立即 tar/gzip 生成的文件。我正在寻找一种在一个命令中执行此操作的方法:
所以从这个:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
Run Code Online (Sandbox Code Playgroud)
对于这样的事情:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
Run Code Online (Sandbox Code Playgroud)
或者甚至更好(因为我通常将转储文件 scp 到另一台服务器):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Run Code Online (Sandbox Code Playgroud)
我在 debian 上运行 bash。
我目前有两台 CentOS 服务器。我需要知道如何以及最快的方法是“tar”图像目录并对其进行 SCP 处理?
这是我刚刚建议的最快方法吗,因为 tarring 需要永远......我运行了命令:
tar cvf imagesbackup.tar images
Run Code Online (Sandbox Code Playgroud)
我打算把它scp过去。
让我知道是否有更快的方法。我可以远程/SSH 访问两台机器。
反正有没有比 tar.gz 更快地提取 tar.gz 文件tar -zxvf filenamehere?
我们有大文件,并试图优化操作。
tar -xvfz foo.tar.gz 返回错误 tar: z: Cannot open: No such file or directory
这是完全可以理解的——f开关需要一个文件名,所以需要放在最后。
但是,省略连字符tar xvfz foot.tar.gz可以解压缩和解压文件。
我已经在 OS X 10.8 和 Ubuntu 12.04 上测试过了。
任何想法为什么?
[编辑添加]
我总是使用tar -zxvf foo.tar.gz. 然而,这个问题是因为这个 xkcd而出现的,当有人坚持认为这tar xvfz会奏效时,我感到很惊讶。

如何将目录中的每个文件压缩到自己的 tar 中,同时保留每个文件的名称?
即 file1.out file2.out
-->
file1.out.tar.gz file2.out.tar.gz
我需要部署一个自动化进程(通过 1 分钟的 cron 脚本)来查找特定目录中的 tar 文件。如果找到 tar 文件,则将其解压缩到适当的位置,然后删除 tar 文件。
tar 文件会通过 SSH 从另一台服务器自动复制到此服务器。在某些情况下,tar 文件非常大,有很多文件。
我期望遇到的问题:如果将 tar 文件复制到服务器需要 1 分钟以上,并且 cron 脚本每分钟运行一次,它将看到 .tar.gz 文件并尝试执行解压它,即使 tar 文件仍在写入过程中。
有没有办法(通过 bash 命令)来测试当前是否正在写入文件,或者它是否只是部分文件等?
我想到的另一种方法是将文件复制为不同的文件扩展名(如.tar.gz.part),然后.tar.gz在传输完成后重命名为。但我想我会尝试弄清楚是否有一种简单的方法可以首先在命令行中确定文件是否完整......有任何线索吗?
我正在使用tar归档一组非常大(多 GB)的bz2文件。
如果我tar -tf file.tar用来列出存档中的文件,这需要很长时间才能完成(~10-15 分钟)。
同样,完成cpio -t < file.cpio所需的时间也一样长,加减几秒钟。
因此,从存档中检索文件(tar -xf file.tar myFileOfInterest.bz2例如通过)也很慢。
是否有一种存档方法可以在存档中保留一个随时可用的“目录”,以便可以快速检索存档中的单个文件?
例如,某种目录存储指向存档中特定字节的指针,以及要检索的文件的大小(以及任何其他文件系统特定的详细信息)。
是否有一个工具(或参数tar或cpio)允许归档中的文件的高效检索?
假设我有一个文件目录
/home/user1/dir1
Run Code Online (Sandbox Code Playgroud)
我想创建一个只有“dir1”作为前导目录的tar:
/dir1/file1
/dir1/file2
Run Code Online (Sandbox Code Playgroud)
我知道我可以先 cd 到目录
cd /home/user1/
tar czvf dir1.tar.gz dir1
Run Code Online (Sandbox Code Playgroud)
但是在编写脚本时,从一个目录跳转到另一个目录并不总是有利的。我想知道有没有办法在不更改当前目录的情况下使用绝对路径?
我知道我总是可以在 INSIDE 中创建一个带有绝对路径的 tar 文件并使用
--strip-components
Run Code Online (Sandbox Code Playgroud)
提取时,但有时额外的路径名是您不想与 tar 文件一起分发的额外私人信息。
谢谢!
我需要使用 tar 命令上的“p”选项备份一些数据。问题是我要恢复此数据的地方将拥有所有相同的用户,但这些用户可能具有不同的 ID。这对 tar 有什么影响还是会按用户名正确恢复权限?