用于移动使用 fdupes 或其他重复数据删除包删除的保留文件的脚本

用于移动使用 fdupes 或其他重复数据删除包删除的保留文件的脚本

使用 PhotoRec 恢复文件后,我运行了 fdupes $ fdupes -rdNI --sameline /home/user > fdupes.txt。我无法使用该选项,-d因为我的系统中大约有 160 万个文件已被恢复。我还运行了几次 fdupes,直到找不到更多重复项。

问题是我在fdupes.txt(> 50 MB)的结构中得到了很多条目

   [+] /home/user/recup/jar/f105168728.jar
   [-] /home/user/a/path/to/dir/and/file/myfile_1.ending
   [-] /home/user/another/path/to/dir/and/file/myfile_2.ending

是否有脚本或已编写的程序将“recup”文件移动到我在目录中按顺序排列它们的路径?

许多目录不会在那里,因为我$ find /home/user/ -depth -type d -empty -exec rmdir {} \;后来也在那里。

我可以用 python(脚本)或其他语言一步创建包含子文件夹的文件夹吗?

答案1

这是我写的一个脚本python3

import os
import sys
import ast
import time
import signal

n = 1
from = 'asdf'
into = 'asdf'
d = '/home/user/fdupes.txt'
f = open ( d, "r" )

from = f.readline ()
into = f.readline ()

while '/' in from or '/' in into :
 if ( '[+] /home/user/recup/' in from ) and not ( 'recup' in into ) and ( '[-] /home/user/' in into ) :
  from = from.split ( '[+] ' ) [1]
  from = from.split ( '\n' ) [0]
  into = into.split ( '[-] ' ) [1]
  end = into
  ( into, name ) = os.path.split (into)
  end = end.split ( '\n' ) [0]
  if os.path.isfile (from) :
   if not os.path.isfile (end) :
    if not os.path.isdir (into) :
     os.makedirs (into)
    os.rename (from, end)
 else :
  from = into
  into = f.readline ()
 n += 1
f.close ()
print ("Ready!")

但我认为它不能像home/user/sub/dir/of/a/file/有一个空的时候那样创建一些东西home/user/sub/dir/,可以吗?我必须为此运行几次吗?

我不这么认为,但我也不确定......

如果可以的话,我有一个解决方案:-)

相关内容