从man ntfsundelete
查找最近两天更改的已删除文件
ntfsundelete /dev/hda1 -t 2d
我想知道更改文件/目录是什么意思?
删除某些文件/目录是否算作更改?
例如,如果我两天前创建了一个文件,直到昨天删除时才更改它。该命令能够恢复它吗?
- 将某些文件/目录从一个目录下移动到另一个目录下是否算作更改它们,即使被移动的文件/目录本身没有更改?
我希望找到一种方法来指定和取消删除我上次删除的目录(其中包含文件)。
谢谢!
答案1
我将尝试以不同的顺序回答您的问题。更改文件意味着什么?
更改意味着每当您修改和更新文件的内容(在linux中修改)。如果我们看一下ntfsundelete源码中我们可以清楚的看到作者标注的内容改变:
ntfsundelete.h第 72 行:
time_t date_a; /* altered */
ntfsundelete.c第 1002、1045 行:
name->date_a = ntfs2timespec(attr->last_data_change_time).tv_sec;
last_data_change_time 也有解释linux/fs/ntfs/inode.c第 674 行:
* mtime is the last change of the data within the file. Not changed * when only metadata is changed, e.g. a rename doesn't affect mtime. */ vi->i_mtime = ntfs2utc(si->last_data_change_time);
问题编号。 2:
更改目录修改时间的操作列表:
问题 1:
不,删除文件不算作更改。因此,如果您在两天前创建了一个文件,并且直到昨天删除它时才更改它,则该命令将无法恢复它。
这是对我的 NTFS 分区的测试。我有三个带有 mtime 的 .jpg 文件,如下所示:
- brr.jpg 2012-05-21
- IMG_2001.JPG 2012-05-21
- s640x480.jpg 2011-03-18
我用MSPaint修改了IMG_2001.JPG并保存,所以修改时间改为今天:2012-08-26。然后我删除了(SHIF+DELETE)所有三个文件并在 Linux 中重新启动。
跑步ntfsundelete没有- 时间switch(不考虑更改的时间)打印出以上述三个文件开头的一长串文件:
ntfsundelete /dev/sda1 -m '*.jpg'
Inode Flags %age Date Size Filename
---------------------------------------------------------------
72801 FN.. 100% 2012-05-21 1055334 brr.JPG
72822 FN.. 100% 2012-08-26 1034072 IMG_2001.JPG
72826 FN.. 100% 2011-03-18 52333 s640x480.jpg
..... .... .... .......... ....... ............
Files with potentially recoverable content: 1631
跑步ntfsundelete和--时间 d1switch(因此对于最近 1 天内更改的文件)仅打印出一个文件,即我在删除所有三个文件之前刚刚修改的文件:
ntfsundelete /dev/sda1 -m '*.jpg' -t 1d
Inode Flags %age Date Size Filename
---------------------------------------------------------------
72822 FN.. 100% 2012-08-26 1034072 IMG_2001.JPG
Files with potentially recoverable content: 1