Questions tagged «tar»

归档文件格式(以及读取该文件的程序),通常在Unix和Linux上使用。


2
tar一个目录
我正在尝试对我的测试服务器上的网站文件进行tar操作,以便能够将它们上传到“真正的”服务器。 tar -cf mysite.tar /var/www 它创建存档很好...但是当我打开该存档它有var目录,其中包含www目录... 如何在其根目录中创建具有/ var / www内容的存档,而不是像现在这样的子文件夹?

2
存档(.tar.gz)腐败
我有一个.tar.gz档案,肯定遭受了某种腐败。存档中的数据对我来说显然非常珍贵,我真的很想尽可能多地接触。显然我不希望得到所有这些,但尽可能多的帮助。 此存档通过FTP发送给我,但在发送存档的人的末尾也被损坏。这在FTP传输过程中不应该被破坏。我无法再获得它的另一份副本。 显然,我已经尝试过对此做些什么了。我使用了一个名为的开源应用程序 gzrecover 然后在原始存档上尝试提取由gzrecover生成的“已恢复”存档。但是,这并没有给我带来太大帮助。我能够从中获取一些文件,但不是全部。我查看了Ark(KDE的存档管理器)中的存档,它能够生成存档内容的完整列表(因此,存档中的所有文件和文件夹),所以我有点希望存档仍然存在有一些恢复的机会。 原始存档大小约为18GB。 “恢复”存档大小约为30GB。 我还使用GNU cpio从恢复的档案中提取。它首先成功提取存档的一些内容(大约两分钟),然后开始发送垃圾邮件 cpio: Malformed number �������� 在运行了几天之后(和我的终端垃圾邮件一样长),我终于收到了消息 cpio: premature end of file 同样,在垃圾邮件“格式错误的号码”期间,我没有从它提取的文件夹中增加任何类型的文件大小。换句话说,除此之外根本没有恢复数据。 我使用以下两个cpio命令来提取存档: cpio -ivd -H tar < archive.tar.recovered cpio -F archive.tar.recovered -i -v 毋庸置疑,我曾尝试使用gzrecover多次恢复此存档,并使用这两个cpio命令提取每个存档。 我要求完全不顾一切地恢复这些数据。我还可以使用其他什么方法?如何从此存档中恢复数据?这个档案中的数据对我来说意义重大,我会为失去它而烦恼不已。我会做很多事来恢复它。 谢谢。

1
UNIX shell命令用于扩展任何压缩类型的文件
是否有任何UNIX shell命令来扩展预先不知道类型的压缩文件? 我应该可以使用此命令来扩展至少以下任何类型的文件,但是欢迎使用任何其他已知类型(如.rar或.7z)的能力: 柏油 tar.gz的 TGZ GZ gzip的 BZ2 压缩 涉及单线命令的简单想法将是最佳解决方案,但任何评论都表示赞赏。

0
BusyBox Tar显示与GNU Tar不同的所有权
更新:我发现我可以使用GNU Tar上的“--numeric-owner”标志以原始权限查看/提取。但是,我仍然想知道tar在这里做了什么,因为我不清楚,特别是因为“33”用户确实存在于Ubuntu 16.04系统上。 我有一个运行BusyBox的嵌入式系统v1.01(2010.02.12-18:03 + 0000)内置外壳(灰)。 我注意到当我创建一个tarball(特别是一个gzip的tarball,tgz)时,文件的所有权在嵌入式系统和我的Ubuntu 16.04系统(运行GNU tar 1.28)之间似乎不一致。 忙箱系统: # touch my_file # chown 33:0 my_file # tar -zcvf /mnt/usb/myfile.tgz my_file # tar -ztvf /mnt/usb/myfile.tgz -rw-r--r-- 33/0 12 1970-03-18 21:21:39 my_file 正如您所看到的,当我在BusyBox中再次查看该文件(实际上,提取它)时,它拥有33/0的所有权。 但是当我在Ubuntu 16.04中查看相同的文件时,它显示为具有root / root所有权: Ubuntu 16.04: # tar -tvf myfile.tgz -rw-r--r-- root/root 12 1970-03-18 17:21 my_file …
3 linux  ubuntu  tar  busybox 

1
适用于大量文件的最佳Linux复制命令
这是一个我无法找到明确答案的话题,或者至少有一个对于为什么一个解决方案比另一个解决方案更好的解释。可以说我有两个本地驱动器,一个有要复制的文件,一个是空的。反馈不是必要的,但最佳表现是一些警告。 从一点向下的文件结构必须一致。例如,文件可以存储在目录中x,其中x位于/my_drive_a/to_copy/files/x/-但是当我把它复制到/my_drive_b/,我想它只能从结构化/files/了。所以结果看起来有点像/my_drive_b/files/x/。 每次传输的文件都不一样,因此像这样的功能rsync可能不是有利的功能cp。 文件数量将达到数千,尽管它们都很小。 必须复制并保留数据my_drive_a。 我最初的想法就是做cp -R /my_drive_a/to_copy/files/x/ /my_drive_b/files/x/。同样,由于Linux中的复制功能经验有限,我不确定这是否是复制如此大量文件的最佳解决方案。

1
Tar:排除子文件夹中的某些扩展名
我有一个文件夹,其中包含子文件夹,子文件夹也包含子文件夹。我试过了: tar --exclude='*.msh' --exclude='*.geo' -czvf cont.gz run-1/* 压缩run-1中的所有文件和子文件夹,但压缩具有msh和geo扩展名的文件。但是tar仍在继续添加这些文件。要排除的文件不在run-1中,而是在其中一个子文件夹中,我不想明确指定位置。问题出在哪儿? 编辑:下面是run-1下的子文件夹之一。其他子文件夹具有类似的结构。我也可以在所有子文件夹中排除msh文件夹。 run-1 |-np-8 |-nmesh-3 |-ncell-1 |-bunch of files |-msh |-bg.msh |-bg.geo
2 linux  tar  exclude 

1
为什么du和ls报告的文件大小之间存在巨大差异?
在服务器上,我有一个目录/opt/kafka/data/topics。 $ du -hs /opt/kafka/data/topics 52M /opt/kafka/data/topics 当我像这样的目录tar $ tar czfv /tmp/topics.tar.gz /opt/kafka/data/topics 我得到一个有意义的文件大小 $ ls -alh /tmp/topics.tar.gz -rw-r--r-- 1 user user 11M Jan 12 15:15 kafka 但是,当我下载topics.tar.gz到我的本地OS X计算机并提取它时,它占用10GB! 在/opt/kafka/data/topics仔细检查服务器上的内容后,我注意到它根据ls它包含许多10MB文件: $ find /opt/kafka/data -type f -exec ls -alh {} \; ... [output] -rw-r--r-- 1 user user 10M Jan 12 02:45 …

1
在功能强大的群集上以最快的方式压缩(即存档为单个文件)数百万个小文件,以加快文件传输
重要说明:压缩不是目标,而是归档/录音(将所有文件打包到单个存档中)是目标。 我想备份一个目录,其中包含数百个子目录和数百万个小文件(<800 KB)。当rsync用于将这些文件从一台计算机复制到另一台远程计算机时,我注意到传输速度非常低,只有大约1 MB /秒,而当我复制大文件(例如500 GB)时大约120 MB /秒。因此,网络连接绝不是问题。 在这种情况下,仅移动200 GB这样的小文件花了我大约40个小时。因此,我正在考虑压缩包含这些文件的整个目录,然后将压缩的存档传输到远程计算机,然后在远程计算机上将其解压缩。我不希望这种方法可以将40小时减少到5小时,但我怀疑肯定会少于40小时。 我可以访问具有14个CPU内核(56个线程-Intel®Xeon®Gold 5120 CPU @ 2.20GHz)和128 GB RAM的群集。因此,CPU / RAM电源不是问题。 但是,从这么多文件中创建单个存档的最快,最有效的方法是什么?我目前仅了解以下方法: 传统tar.gz方法 7zip pigz(平行gzip- https://zlib.net/pigz/) 但是,我不知道哪个更快,应该如何调整参数以达到最大速度?(例如,将所有CPU内核与7zip一起使用还是仅使用一个内核会更好?) 注意文件大小和压缩率根本不重要。我根本不想节省空间。我只是试图从这么多文件中创建一个档案,以使传输速率为120 MB / s,而不是1 MB / s。 相关:如何使7-Zip更快
2 unix  zip  tar  7-zip 

1
cpio VS tar - 为了将数百个目录压缩到一个文件,最好的归档解决方案
在我的Linux机器下的/ var / Recording目录下。 我有数百个目录,每个目录也有目录和文件包括硬链接和软链接。 我想压缩/ var / Recording目录下的所有目录来创建一个压缩文件。 使用哪个命令我可以创建最好的压缩文件? - tar或cpio(关于我有硬链接和软链接文件)。 第二,tar / cpio命令的正确语法是什么? drwxr-x--- 2 root root 4096 Nov 22 18:57 458ca4e8-0edf-4204-9f9b-9c3dc02953c5.1034 drwxr-x--- 2 root root 4096 Nov 22 18:57 458ca4e8-0edf-4204-9f9b-9c3dc02953c5.1033 drwxr-x--- 2 root root 4096 Nov 22 18:57 458ca4e8-0edf-4204-9f9b-9c3dc02953c5.1038 drwxr-x--- 2 root root 4096 Nov 22 18:57 …
1 linux  bash  tar  cpio 

2
如何将大型目录复制到外部硬盘Linux
我使用fdisk(实际上是gnu fdisk)将3TB外置硬盘格式化为ext4,将其安装在/ media / external上,并尝试将我的整个主目录复制到它。 我认为我的第一次尝试是成功的,但过了一段时间,当进程停止时,我无法进入复制的主目录。 cd似乎失败了: sudo: cd: command not found 然后我认为cp可能有一些限制,然后再次尝试使用tar。 cd /from-stuff/ tar cf – . | (cd /to-stuff; tar xvf -) 我测量的主目录大小为~100G。在我的主目录中,我运行: du -ch | grep total 我把它安装为: sudo mount -t ext4 /dev/sdd1 /media/external 请注意,我无法安装 /dev/sdd 显示出来 sudo fdisk -l 而/ dev / sdd1没有。 格式化时我做了最默认的设置,1个分区,默认其他一切。我没有任何“无效的分区表错误”确认格式正确。我是新手,所以请耐心等待。我可能不小心选择了GUID?但不知道如何检查或重新格式化它可能需要的任何东西。 我做错了有什么明显的吗?有人可能会提供一个fdisk序列来确保一切都是格式化为ext4的1个基本分区吗? …

1
从文件列表创建tar存档并删除完整路径
我正在尝试组合两个选项来创建tar存档,但它们并不能很好地协同工作。我不知道是什么问题。 我用: tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt 如果我只使用-C选项,它会创建一个只有相对路径“./html/”的tar存档,但是该文件夹中的所有文件。我不想要这个。 然后,如果我只使用-T选项,它会创建一个只包含所需文件的tar存档,但路径是绝对的“/var/www/website/html/whatever.html”。我也不想要这个。 我想要两者的组合,但不知何故它不起作用。 文件夹结构是: /var/www/website/html/ 很多.html文件 /tmp/htmllist.txt文件夹包含以下行: /var/www/website/html/file1.html /var/www/website/html/file5.html /var/www/website/html/file32.html 等等。 我该如何解决这个问题?
1 linux  tar  archiving 



1
make:我自己的简单存储库
我在我大学的服务器上有一个帐户。我想与另一名学生分享一个程序代码。我以为我应该把它放在我的github帐户上。不幸的是,我不能,因为代码是比赛的一部分。 我决定制作一个Makefile,以便我们可以轻松上传和下载文件。过了一会儿我终于明白这还不够。然后我实现了补丁系统,以便只存储更改。小的同时变化应该没有问题。 Makefile几乎完成了这项工作,但有些细节我无法解决。Makefile all: download PHONY: all, download, upload, getFiles .ONESHELL: getFiles: rm ../.tmp -r mkdir ../.tmp @(ssh $(user)@host "tar c *") | tar xv -C ../.tmp download: getFiles @diff -u ../.tmp . | patch -p1 rm ../.tmp -r upload: getFiles @diff -uN ../.tmp . | (ssh $(user)@host "patch -p1") …
1 bash  tar  make  repository 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.