Eu tenho dados recuperados de um backup e os dados recuperados têm várias versões das mesmas pastas / arquivos. As pastas / arquivos foram nomeados com _000 _001 _002 etc nos arquivos e pastas. Todos os carimbos de hora modificados são os mesmos. Então as pastas / arquivos parecem com isso
[PATH ~/Folder/9] (VERSION 1) EMPTY - and can be deleted
[PATH ~/Folder/9_000] (VERSION 2) EMPTY - and can be deleted
[PATH ~/Folder/9_001] (VERSION 3) Data is in this last one
FILEA.TXT (VERSION 1) remove/delete this one
FILEA_000.TXT (VERSION 2) remove/delete this one
FILEA_001.TXT (VERSION 3) remove/delete this one
FILEA_002.TXT (VERSION 4) I need to keep this one and then rename
FILEB.TXT (VERSION 1) remove/delete this one
FILEB_000.TXT (VERSION 2) I need to keep this one and then rename
Algumas dessas pastas são 6 ou mais profundas. O padrão que eu encontrei é que o último arquivo ou versão de pasta para cada pasta / arquivo é o bom e as pastas que são indesejadas estão vazias. O ruim não é que todos os arquivos / pastas tenham o mesmo número de versões. Então, só porque o FILEA.TXT tem 4 versões (FILEA.TXT para FILEA_002.TXT), o FILEB.TXT possui apenas 2 versões (FILEB.TXT & FILEB_000.TXT). Portanto, não posso pesquisar todos os arquivos com _002
e mover ou excluir. Eu era facilmente capaz de excluir todas as pastas vazias indesejadas com bash ( find . -type d -empty -delete
), que cuida de parte do meu problema nas pastas, exceto para renomear de volta.
Eu preciso remover todos os arquivos indesejados e, em seguida, remover os números de versão das pastas / arquivos para que o software possa importar corretamente os dados recuperados. Aqui está um exemplo de um caminho e os arquivos e pastas no caminho.
[PATH ~/Folder/9] EMPTY - and can be deleted
[PATH ~/Folder/9_000] EMPTY - and can be deleted
[PATH ~/Folder/9_001] Data is in this last one
[PATH ~/Folder/9_001/62BF7CA1] EMPTY - and can be deleted
[PATH ~/Folder/9_001/62BF7CA1_000] EMPTY - and can be deleted
[PATH ~/Folder/9_001/62BF7CA1_001] Data is in the last one
[ FOLDERS/FILES IN "~/Folder/9_001/62BF7CA1_001" ]
Archive - unwanted deleted it
Archive_000 - unwanted deleted it
Archive_001 - unwanted deleted it
Archive_002 - unwanted deleted it
Archive_003 - keep
Documents - unwanted deleted it
Documents_000 - keep
FolderX - unwanted deleted it
FolderX_000 - unwanted deleted it
FolderX_001 - unwanted deleted it
FolderX_002 - keep
62BF7CA1.PDF - unwanted deleted it
62BF7CA1_000.PDF - unwanted deleted it
62BF7CA1_001.PDF - unwanted deleted it
62BF7CA1_002.PDF - keep
62BF7CA1.TXT- keep
62BF7CA1.DOC - unwanted deleted it
62BF7CA1_000.DOC - unwanted deleted it
62BF7CA1_001.DOC - unwanted deleted it
62BF7CA1_002.DOC - keep
62BF7CA1.QIF - unwanted deleted it
62BF7CA1_000.QIF - unwanted deleted it
62BF7CA1_001.QIF - unwanted deleted it
62BF7CA1_002.QIF - keep
Os arquivos e pastas neste caminho para manter seriam
Archive_003
Documents_000
FolderX_002
62BF7CA1_002.PDF
62BF7CA1.TXT
62BF7CA1_002.DOC
62BF7CA1_002.QIF
... e então eu preciso soltar qualquer _000 _001 _002 etc se existir em cada pasta de arquivos
Archive
Documents
FolderX
62BF7CA1.PDF
62BF7CA1.TXT
62BF7CA1.DOC
62BF7CA1.QIF
Provavelmente fácil com coisas como sed e pipes, mas não faço ideia.