我有一个数据库文件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
是否可以恢复它?
答案 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,您可能会很幸运,有一个最近的快照,您可以从中复制该文件的先前版本。