Articles of tar

Bash – 我如何存档和压缩子目录中的文件,但只有一个特定的文件名

我有一个目录结构,如下所示: main_directory/ directory1: sub_directory1: files: myfile.txt otherfile.txt sub_directory2: files: myfile.txt otherfile.txt sub_directory3: files: myfile.txt otherfile.txt sub_directory4: files: myfile.txt otherfile.txt directory2: sub_directory1: files: myfile.txt otherfile.txt sub_directory2: files: myfile.txt otherfile.txt sub_directory3: files: myfile.txt otherfile.txt sub_directory4: files: myfile.txt otherfile.txt 我想弄清楚(通过试验和错误,因为我不是Linux的专家)如何只gzip所有目录中的myfile.txt文件。 由于它们在不同的path中都有相同的文件名(这是没有办法解决的),所以我需要能够将文件path保存在档案中。 所以我想要创build的最终gzipped tar文件将包含以下内容: mytar.tar.gz main_directory/directory1/sub_directory1/files/myfile.txt main_directory/directory1/sub_directory2/files/myfile.txt main_directory/directory1/sub_directory3/files/myfile.txt main_directory/directory1/sub_directory4/files/myfile.txt main_directory/directory2/sub_directory1/files/myfile.txt main_directory/directory3/sub_directory2/files/myfile.txt main_directory/directory4/sub_directory3/files/myfile.txt main_directory/directory5/sub_directory4/files/myfile.txt 有一个简单的bash方式来做到这一点? 我想我可以写一个python脚本来做到这一点,但似乎矫枉过正。 有人有build议吗?

Linux如何在将文件传输到tar之前,在文件周围放置双引号?

我用ls来获得我的文件名,它有空白,所以它看起来像这样: my file with whitespace.tar.bz2 我想pipe这个tar类似于: ls | grep mysearchstring | tar xvjf 如何在inputtar之前插入双引号?

通过排除其父文件夹,为多个目录创build单个tar文件

我正在使用bash shell脚本,它通过将其父文件夹排除在所有目录之外来为多个文件夹创build一个tar文件,并排除指定的文件夹。 目录结构是: $ ls dir1 dir11 testdir $ ls dir2 dir12 testdir2 $ ls dir3 dir13 testdir3 $ tar -cvf file1.tar dir1 dir2 dir3 –exclude="test*" 以上工作正常。 但是我不想要tar中的dir1,dir2和dir3文件夹。 我只需要在文件和目录中。 所以我的最终焦油应该包含如下 $ tar -tvf file1.tar dir11 dir12 dir13 任何人都可以帮我解决这个问题。 提前致谢

去path,然后焦油?

你可以tar有一个特定的直接,然后tar文件相对于该目录? 所有使用一个命令(焦油)? 例如,而不是做 cd /home/test/backups; tar zvPcf backup.tar.gz ../data/ 我可以做类似的事情 tar -g '/home/test/backups/' zvPcf backup.tar.gz ../data/

除了某些文件的tar / gzip

我有一个有许多子目录的目录。 在其中一些子目录中,我有*.asc扩展名的文件和一些*.xdr 。 我想创build一个单一的tarball / gzip文件来维护目录结构,但不包括所有带*.xdr扩展名的文件。 我怎样才能做到这一点? 我做了一些像find . -depth -name *.asc -exec gzip -r9 {} +东西find . -depth -name *.asc -exec gzip -r9 {} + find . -depth -name *.asc -exec gzip -r9 {} +但是这个gzip每个*.asc文件单独这不是我想要做的。

在RedHat Linux中安装Maven 3.0.5

任何人都可以帮助我在Linux安装maven 3.0.5吗? 我尝试使用wget , yum和tar命令。 所有的命令都说它不被识别为外部或内部的命令,现在我是如何实现它的空白。 我们是否需要去start->cmd并应用这些命令? 还请告诉我如何设置环境variables。 请帮帮我。 提前致谢。

从tar.gz中提取特定的文件夹到特定的目录

我已经search并find了我想要的两个部分,但没有任何东西可以让你完成这个任务。 我想要做的是从tar.gz中提取一个特定的文件夹到另一个不同的path中的文件夹,它是如何在tar.gz中。 例如: 在我的backup.tar.gz文件中的目录path是:A / B / C / D(D是我的主要与许多其他内部) 我想在这个不同的服务器path:a / b / m中解压目录'd'到'm' 如果我尝试下面的代码:tar -xzf backup.tar.gz -C a / b / m **文件夹结构如下所示:a / b / m / a / b / c / d但是我希望它看起来像a / b / m + d,这样我的所有主文件/path以“m”path结束 任何帮助是极大的赞赏。 谢谢!

在Linux上tar一个`.zip`出错

我使用zip命令行和-r选项压缩了我的Mac OSX上的目录。 我把这个.zip一个在Linux上运行的集群。 如果我尝试使用.zip解压缩 tar -vxzf foo.zip 在我的机器上工作。 但是相同的命令在群集上不起作用。 我得到错误 gzip: stdin has more than one entry–rest ignored tar: Child returned status 2 tar: Error is not recoverable: exiting now 我该如何解决这个问题?

用bash从tar.gz中提取1个文件

是否可以通过编程从一个大小合适的.tar.gz文件中提取单个文件,而不需要将整个tarball提取到磁盘上? 本质上我需要通过networking进入大型tar.gz文件,并提取1个小文本文件。 看起来有点过头了,将tar包解压缩到磁盘,然后把文件拉出来,然后删除其他所有东西。 此外,我将这样做recursion(例如,软件包的依赖关系,每个文本文件指向更多的tar.gz的),所以更less的networkingstream量和CPU周期,我可以摆脱。

使用正则expression式时,Shell'tar:在归档中找不到'错误

当我使用tar -xzf *.gz来提取当前目录中的所有.gz文件时,我Not found in archive错误中Not found in archive .gz文件。 但是,如果我逐一提取或使用for循环,它工作正常 for file in `ls *.gz`; do tar -xzf $file; done 这个错误的原因是什么?