Articles of tar

从linux中的tgz中提取untarred文件

我有一个很大的.tgz文件(19GB)。 我昨晚在vmware上开始了untar操作,但在早上,我看到了一个死亡的蓝屏。 我不想浪费时间解开已经完成的文件(5GB)。 如何在没有浪费时间的情况下将尚未解压的文件解压到同一文件夹中5GB。 谢谢。

为什么在压缩同一个文件时`gzip`生成不同的二进制文件?

以下是它与bzip2比较: $ /tmp ls testdir xxx! $ /tmp cat testdir/xxx\! $ /tmp tar -czf t1.tgz testdir $ /tmp tar -czf t2.tgz testdir $ /tmp md5sum t1.tgz 5485da4154e180b2c30cb43ed721aee9 t1.tgz $ /tmp md5sum t2.tgz c494cd05ea3fd3aee997c541983423bd t2.tgz $ /tmp tar -cjf t1.bz2 testdir $ /tmp tar -cjf t2.bz2 testdir $ /tmp md5sum t1.bz2 35003556c14da931e0bb31e56a8c42f9 t1.bz2 $ /tmp md5sum […]

该目录太早被删除

我试图从目录的内容使用Codec.Archive.Tar创build一个tar文件,但我也想要清理目录一旦tar文件已经创build。 这里有一个小例子来说明我的问题: import System.Directory import qualified Codec.Archive.Tar as T listFile = do createDirectory "dir" createDirectory "dir/dir2" tarfile <- fmap T.write $ T.pack "dir" ["dir2"] removeDirectoryRecursive "dir" return tarfile 当我从ghci中调用函数listFile ,我回来了 "*** Exception: dir/dir2: getModificationTime:getFileTimes:getFileStatus: does not exist (No such file or directory) 我猜是由tar文件被懒惰地生成和目录被严格清理。 因此,在tar文件被实际创build之前,该目录被删除。 首先,我是否正确地分析了为什么这是失败的? 如果是这样,我能做些什么来解决这个问题? 我不想严格生成tar文件,因为它可能相当大,我不想将它全部存储在内存中。 什么是“惯用”的方式来延迟删除目录,直到tar文件已经生成?

在本地机器上通过ssh创build和更新存档

我试图find一种方法来创build和更新远程系统上的文件的tar档案,我们没有写权限(远程文件系统是只读的)通过SSH。 我发现创build一个档案的方法是, ssh user@remoteServer "tar cvpjf – /" > backup.tgz 不过,我想知道是否有某种方式从这一点上只执行增量备份(只有实际上已更改的文件?)。 任何帮助,这是非常感谢。

Bash命令每天根据添加的date归档文件

我有一套脚本,涉及从远程服务器下载文件,然后parsing它们。 每天晚上,我想创build一个当天下载的文件的档案。 一些限制是: 从Windows服务器下载到Ubuntu服务器。 无法删除远程服务器上的文件。 要求添加到本地目录的date, 而不是文件的创builddate。 我在下载阶段运行重复数据删除; 然而,(使用ncftp),检查包括比较远程和本地目录。 一个策略是每天创build一个新文件夹,下载文件并在午夜后的某个时间进行tar。 由于新的本地文件夹是空的,新的一天的第一次预定下载将获取远程服务器上的所有文件,这是一个问题。 由于受到限制,我考虑将基于“添加date”的文件归档到中央文件夹。 使用Mac可以很好地工作,因为HFS +存储扩展的元数据,如创builddate和添加date。 所以我可以把tar命令与下面的东西结合起来: mdls -name kMDItemFSName -name kMDItemDateAdded -raw *.xml | \ xargs -0 -I {} echo {} | \ sed 'N;s/\n/ /' | \ 但似乎并没有在Linux下的模拟(至less不是我知道的EXT4)。 我乐于接受任何forms的解决scheme,以避免在随后的一天中将文件翻倍。 最终的结果应该是一个完整的tar.gz文件的档案目录,如下所示: files_$(date +"%Y-%m-%d").tar.gz

在tar压缩文件中是否有添加注释或说明的方法

是否可以在tar文件中添加注释或说明? 这个想法是添加信息,而不需要提取整个档案 – 超快的东西,比如“这个档案是为了等等”,例如: tar –comment "This tar us for blah blah" -cjvf mytarfile.tar.bz2 directory_that_I_want_to_compress 更新我find了我想要使用zip和解压缩。 我可以将我的评论存储在zip压缩文件中的一个文件中,并快速检索该文件,而无需提取整个压缩文件。 快速。 zip -r my.zip my_dir unzip -p my.zip my_dir/mycomment.txt

Bash脚本退出没有错误

我有一个bash脚本,我从DVD上运行。 此脚本将DVD中的多卷tar文件复制到本地计算机。 在复制的部分path中,脚本提示用户插入第二张DVD,此时复制剩余的文件。 该脚本存在于第一张DVD上,但不在第二张。 该脚本只是在复制最后一个文件之后停止,而不是在启动tar多卷提取操作和后续处理之前停止。 没有报告的错误或消息。 我试着用'-x'运行bash,但是没有什么可疑的 – 甚至没有退出语句。 更不幸的是,这种行为是不一致的。 有时脚本会停止,但有些时候会继续没有问题。 我在脚本上运行strace。 在复制操作结束之后,我看到这样的结果: read(255, "\0\0\0\0\0\0\0\0\0\0"…, 5007) = 1302 read(255, "", 5007) = 0 exit_group(0) = ? 我知道bash将脚本文件读入内存并从那里执行它,但它有可能在某个时刻重新读取脚本文件并失败(因为它不再存在)? tar文件非常大,从脚本开始到复制最后一个文件(从第二张DVD)开始,大约需要10-15分钟。

在由bash创build的tar内部sorting文件

任何想法如何以特定的顺序来压缩文件。 我知道这听起来很奇怪,但是听我说。 OVA文件本质上是一个tar文件,但是具有特定的顺序。 Tar通常用于创build文件,但是为了使OVA能够像VMware一样被HyperVisors识别,OVA中的文件必须以特定的方式进行sorting。 .ovf文件必须是OVA中的第一个,而其他文件必须按照他们在.ovf中列出的顺序出现 这里只是一个快速的树来帮助解释: VM.ova– | |–VM.ovf |–VM.mf |–VM.vmdk |–VM.iso 这是正确的顺序。 当我尝试用tar创build一个ova的时候,但是顺序是错误的。 这是我如何做的。 这其实是非常基本的 tar -cvf VM.ova * 我只是深入到包含所有需要添加到OVA的内容并运行tar命令的文件夹。 请帮我正确地订购这些文件。 如果我们不能解决这个问题,虚拟机将无法使用任何HyperVisor。 谢谢! *更新* 目前tar默认的命令是:vmdk,iso,mf,ovf

列出多个.tar存档文件的内容

列出我使用的一个.tar档案文件的内容 tar -tvf archive.tar 我希望能用类似的格式来列出更多文件的内容,但是 tar -tvf *.tar 没有按照我的预期工作。 列出多个.tar存档文件内容的最佳单行解决scheme是什么?

gzip:stdin:不是gzip格式tar:孩子返回状态1 tar:错误不可恢复:现在退出

我有一个bash脚本,创build一个tar.gz并encryption然后发送到驱动器。 但是,我不能打开.tar.gz后。 这是我的过程 Bash脚本encryption。 #!/bin/sh # tar the automysqlbackup directory tar -zcf "red-backup-$(date '+%Y-%m-%d').tar.gz" /var/lib/automysqlbackup/ # encrypt the tar openssl aes-256-cbc -a -salt -in "red-backup-$(date '+%Y-%m-%d').tar.gz" -out "red-backup-$(date '+%Y-%m-%d').tar.gz.enc" -pass 'pass:MySecretPWD' # remove the original tar rm -rf "red-backup-$(date '+%Y-%m-%d').tar.gz" # upload to google drive gdrive upload –file "red-backup-$(date '+%Y-%m-%d').tar.gz.enc" -p "jofhriout849uioejfoiu09" 然后我下载文件并使用 sudo openssl […]