创建没有文件夹的tar存档,其中只知道文件夹的名称(重复出现)

时间:2013-05-29 21:37:34

标签: unix tar synology

我有一个synology DS213j。我已经安装了PhotoStation,它在我的所有文件夹中创建了一些@eaDir文件夹,以便创建一些缩略图图片。 我有这样的例子:

/photo
/photo/2012
/photo/@eaDir
/photo/2012/Album1
/photo/2012/Album2
/photo/2012/@eaDir
/photo/2012/Album1/SubAlbum1
/photo/2012/Album1/SubAlbum2
/photo/2012/Album1/@eaDir

我想tar我的文件夹2012,以便将其发送到Amazon Glacier进行备份。我不想使用.zip,因为我可能有一些超过4Gb的文件,这对于zip来说太多了。

我做到了:

tar -cvzf 2012.tar.gz 2012/

它工作但包括名为@eaDir的所有文件夹。

我的问题是。我想从我的tar文件中排除所有@eaDir文件夹。

我曾尝试使用--exclude函数,但似乎它在Synology上无效。也许我需要安装另一个包来获得另一个tar功能才能使用它。也许我可以使用正则表达式函数来实现我想要的目标。

有人可以帮我吗? (使用--exclude或regex或其他任何东西)

1 个答案:

答案 0 :(得分:0)

我没有发现排除指定文件很容易.....尝试用pr修复,X选项--exclude = PATTERN选项和--exclude-tag-under = FILE选项的tar但空目录或@eaDir的内容包含在最终结果中....还尝试了一个小脚本来提供在while循环中添加zip的名称,这给我带来了一个小问题....

在你的问题中你说:“它在我的所有文件夹中创建了一些@eaDir文件夹,以便创建一些缩略图图片”....那个目录是@eDDir还是它的内容对你很重要?

如果您只是删除它们会更简单:

find ./photo -iname "@eaDir" -ok rm -rf {} \; 

然后在那上面使用tar ....

 tar -cvf photo.tar ./photo