0

我有一台群晖 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 或正则表达式或其他任何东西)

4

1 回答 1

0

我发现排除指定文件并不容易.....尝试使用 prune 、 X 选项 --exclude=PATTERN 选项和 tar 的 --exclude-tag-under=FILE 选项查找,但空目录或内容@eaDir 在最终结果中被打包......还尝试了一个小脚本来提供名称以在 while 循环中添加到 zip 中,这给我带来了一个小问题......

在您的问题中,您说:“它在我的所有文件夹中创建了一些@eaDir 文件夹以创建一些缩略图”....该目录@eaDir 或其内容对您很重要吗?

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

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

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

 tar -cvf photo.tar ./photo
于 2013-05-30T03:56:11.260 回答