Bash:确定部分删除的内容

时间:2016-07-14 17:08:18

标签: linux bash

我想删除一个符号链接

rm -rf name

但改为使用

rm -rf name/

我认为我花了一秒钟才意识到这个错误并取消了它。这是一个包含数百gbs数据的庞大目录。因此,无论如何都需要很长时间才能删除。

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

  2. 如果删除不可恢复,是否可以找出已删除的内容?它是否以与ls(按字母顺序排列)相同的顺序删除?

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

  4. 操作系统是科学Linux。文件系统是nfs(df -T)。

1 个答案:

答案 0 :(得分:1)

请注意,我仍然认为问题在这里是偏离主题的......但是在一个地方对问题的每个分支做出明确的答案并且如果这个答案被移植到SuperUser并且问题是这样的话也不会有害,更好:

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

就像在单个文件系统中的递归rename()期间的单个mv系统调用一样,单个文件的单个unlink()是原子的 - 它要么完成要么不打开逐个文件。没有“半完成”状态,并且没有更大的事务跨越多个可以回滚的文件; 每个目录条目都将被删除。

同样,任何没有剩余目录条目(也称为“硬链接”)指向它或在unlink()末尾打开文件句柄的文件将立即被删除 - 尽管文件系统位于其中自行决定是否,何时以及在何种情况下实际擦除或重复使用存储其数据的基础块,或指定哪些块与每个现在删除的文件相关联的跟踪数据。

  
      
  1. 如果删除不可恢复,是否可以找出已删除的内容?它是否以与ls(按字母顺序排列)相同的顺序删除?
  2.   

不一般。存在可以使用的特定后端文件系统,可以跟踪快照之间的更改,甚至可以执行时间点恢复(尽管这些通常是商业的,因此仅在管理员为其付费时才可用)和监视工具(例如记录个别系统调用的sysdig

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

  
      
  1. 是否有从系统中删除的文件日志?
  2.   

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