Tim*_*Tim 6 directory ntfs files
从 man ntfsundelete
查找最近两天更改的已删除文件
Run Code Online (Sandbox Code Playgroud)ntfsundelete /dev/hda1 -t 2d
我想知道更改文件/目录是什么意思?
删除某些文件/目录算作更改吗?
例如,如果我在两天前创建了一个文件,直到昨天删除时才更改它。该命令是否能够恢复它?
我希望找到一种方法来指定和取消删除我上次删除的目录(包含文件)。
谢谢!
我将尝试以不同的顺序回答您的问题。更改文件是什么意思?
更改意味着每当您修改和更新文件的内容(在linux中修改)。如果我们查看ntfsundelete源代码,我们可以清楚地看到作者标记为alter的内容:
ntfsundelete.h第 72 行:
Run Code Online (Sandbox Code Playgroud)time_t date_a; /* altered */
ntfsundelete.c第 1002、1045 行:
Run Code Online (Sandbox Code Playgroud)name->date_a = ntfs2timespec(attr->last_data_change_time).tv_sec;
last_data_change_time 也在linux/fs/ntfs/inode.c第 674 行中进行了解释:
Run Code Online (Sandbox Code Playgroud)* 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 文件,如下所示:
我用MSPaint修改了IMG_2001.JPG并保存,所以修改时间改为今天:2012-08-26。然后我删除了(SHIF+DELETE)所有三个文件并在 Linux 中重新启动。
在没有--time开关的情况下运行ntfsundelete(不考虑更改的时间)会打印出以上述三个文件开头的一长串文件:
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
Run Code Online (Sandbox Code Playgroud)
使用--time d1开关运行ntfsundelete(因此对于最近 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
Run Code Online (Sandbox Code Playgroud)