gpt4 book ai didi

linux - Bash:确定部分删除的内容

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:15 25 4
gpt4 key购买 nike

我想删除符号链接(symbolic link)

rm -rf name

而是使用了

rm -rf name/

我想我花了一秒钟才意识到这个错误并取消了它。这是一个包含数百 GB 数据的庞大目录。所以无论如何删除都会花费很长时间。

  1. 由于命令不完整,部分处理的文件是否已恢复(如 mv )还是已永久删除?

  2. 如果它们被不可恢复地删除,是否可以找出删除的内容?是否按照ls的顺序删除(按字母顺序)?

  3. 是否有从系统删除的文件的日志?

操作系统是 Scientific Linux。文件系统是 nfs ( df -T )。

最佳答案

请注意,我仍然认为这个问题在这里是偏离主题的……但是在一个地方对问题的每个分支都有明确的答案也没什么坏处,如果这个答案随问题一起迁移到 super 用户,那就更好了:

<小时/>
  1. Since the command was incomplete, are the partially processed files restored (like mv) or are they already permanently deleted?

就像单个文件系统中递归mv期间的单个rename()系统调用一样,单个文件的单个unlink()是原子的——它要么完成,要么不完成,逐个文件地进行。不存在“半完成”状态,也不存在可以回滚的跨多个文件的较大事务; 每个单独的目录条目要么被删除,要么不被删除。

同样,任何没有剩余目录条目(也称为“硬链接(hard link)”)指向它或在 unlink() 末尾打开文件句柄的文件将立即被删除 - 尽管文件系统自行决定是否、何时以及在什么情况下实际删除或重用存储其数据的底层 block ,或者指定与每个现在删除的文件关联的跟踪数据。

  1. If they are irrecoverably deleted, is it possible to find out what has been deleted? Is it deleted in the the same order as ls (alphabetical)?

一般来说不是。存在可以使用的特定后端文件系统,可以跟踪快照之间的更改,甚至可以进行时间点恢复(尽管这些通常是商业的,因此只有在管理员付费的情况下才可用),以及记录各个系统调用的监控工具(例如 sysdig)。

例如,如果您的系统管理员正在运行带有定时快照的 ZFS 或 btrfs,他们可以将当前存在的文件列表与上次快照时存在的文件列表进行比较。

  1. Is there a log of files deleted from the system?

一般来说不是。如果您的站点正在运行 Sysdig Cloud 或具有非默认行为的商业文件服务器,那么也许 - 但您的系统管理员人员将是可以回答该问题的人。

关于linux - Bash:确定部分删除的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38380231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com