如何解决如何找到复制文件的来源?
我有一个文件,我曾经复制回来,但我忘记了它的来源。有没有办法找到复制文件的来源?我不记得我曾经用哪个终端尝试使用 Esc+P 进行检查
使用的命令:cp -rf $source/file $destination/file
提前致谢!
解决方法
Linux 系统有许多文件(如果您想到 /proc/
,它可能随时都在变化)。并且某些其他进程可以写入或创建(或追加或截断)文件(例如某些 crontab(1) 作业...)
假设您知道某个包含源文件的父目录。假设它是 /home/foo
。
然后,您可以使用 find(1) 和一些像 md5sum(1) 这样的散列命令来计算和收集每个文件的散列。
使用具有相同内容(字节序列)的两个文件 A 和 B 具有相同 md5sum
的属性。当然,反过来是错误的,但实际上不太可能。
所以先运行
find /home/foo -type f -exec md5sum '{}' \; > /tmp/foo-md5
然后做 seekingmd5=$(md5sum
A )
然后 grep $seekingmd5 /tmp/foo-md5
将查找与原始 A
md5
的文件的行
根据您的文件系统和硬件,这可能需要几个小时。
通过使用 nftw(3) 和 md5init
等编写 C 程序,您可以稍微加速...
你可以试试history | grep your_filename
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。