Základem pro obnovu dat jsou adresáře:
~/.local/share/Trash/files/
kde jsou smazané soubory fyzicky umístěny a
~/.local/share/Trash/info/
kde jsou ke každému souboru uloženy informace o původním umístění a čase přemístění do koše.
Pak už stačí jen vyrobit skript, který informace posbírá a obnoví soubory včetně jejich původních adresářů. Můžeme ho nazvat třeba ... prdel. Prostě jak chcete, jen ho určitě nenazývejte copy.py, to se vám vymstí, protože jedna z komponent programu se bude snažit importovat modul stejného jména, což povede k importu vašeho skriptu...
#!/usr/bin/python3 import os, shutil, urllib.parse path_f = os.path.expanduser('~/.local/share/Trash/files/') path_i = os.path.expanduser('~/.local/share/Trash/info/') lst = [] files = os.listdir(path_f) for file in files: if os.path.isdir(path_f + file): continue with open(path_i + file + '.trashinfo', 'r') as f: lines = f.readlines() dest = urllib.parse.unquote(lines[1].replace('Path=', ''))[:-1] lst.append([file, dest]) print('\n', file,'\n-> ', dest) i = input('\nZkopírovat tyto soubory? (a/n) ') if i.lower() == 'a': for i in lst: try: os.makedirs(os.path.dirname(i[1])) except OSError: pass shutil.copy2(path_f + i[0], i[1]) print('\nSoubory byly zkopírovány.\n') else: print('\nObnova souborů zrušena\n')
Uvedený skript se spouští příkazem:
puthon3 /cesta/k/prdel
nebo jak jste si skript nazvali a nejprve vypíše soubory s jejich cílovými adresáři s dotazem na potvrzení kopírování a pak je překopíruje na původní umístění, přičemž vytvoří všechny potřebné adrsáře, pokud se nachází na připojených filesystémech.
Popravdě není to častá situace, ale praxe napovídá, že nastat může a pak není od věci mít připravené řešení. Zvlášť, když jsem ho připravil já. Howgh.
Žádné komentáře:
Okomentovat
Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.
Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.