tar从Solaris上的DB文件创建了一个目录

时间:2013-08-13 14:24:24

标签: unix solaris tar

我有一个数据库文件repository.db,我犯了以下错误:

$ tar cvf repository.db repository.db.part1.tar
tar: repository.db.part1.tar: No such file or directory

而不是

tar cvf repository.db.part1.tar repository.db

现在我的repository.db看起来像一个目录 -rwxr-xr-x + 1 gw greenwich 1024 Aug 13 17:55 /pool/greenwich/dictionary/repository_ipdr_test/part1/repository.db

是否可以恢复它?

2 个答案:

答案 0 :(得分:1)

根据以下简单实验,该文件填充了NULL字符。没有找到以前的内容;我不可能恢复。

我没有solaris盒子。我在Ubuntu Linux 13.04(GNU tar 1.26)中进行了实验; Solaris上的结果可能有所不同

$ echo hello > 1
$ cat 1
hello
$ tar cvf 1 no-such-file
tar: no-such-file: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
$ ls -l 1
-rw-rw-r-- 1 falsetru falsetru 10240 Aug 13 23:29 1
$ cat 1
$ od -x 1
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0024000

答案 1 :(得分:1)

您的文件已被覆盖,原始内容已丢失。

您可能会争辩tar c命令在覆盖现有的同名存档之前应该询问,但这不是它的工作方式。 (GNU tar或Sun tar都不是这样工作的。)

您的问题实际上是关于如何恢复以前版本的文件。这取决于您站点上的备份产品。此外,如果您使用ZFS,您可能会很幸运,有一个最近的快照,您可以从中复制该文件的先前版本。