Acumulei, desde o tempo em que usei o Windows, uma boa quantidade de cópias e arquivos de arquivos suspensos do sistema de arquivos e unidades de dados. Estou tentando destilá-las até as partes utilizáveis, enquanto descarto tudo o que provavelmente não tem valor.
Observando um monte de arquivos mencionados rolar enquanto copia, mais uma vez, de uma unidade de retenção para uma unidade de trabalho, acho que tenho uma lista inicial de arquivos "bons" e "inúteis" iniciados, mas fiquei pensando se há algum tipo autoritário de lista de arquivos (provenientes de um ambiente anterior do Windows) que deve ser descartado imediatamente como inútil?
Vencedores: (Eu sei que esta lista provavelmente se tornaria uma bagunça se fosse feito algum esforço para torná-la abrangente, então não é isso que eu estou procurando, a menos que eles provavelmente estejam cercados por porcaria que pode destruí-las inadvertidamente) ( edit: Se a única maneira é um método super abrangente de lista branca, que seja. Prefiro que não fosse esse o caso, mas os mendigos não podem escolher ... na maioria das vezes. )
*.tar.*, *.rar, *.zip
*.mp(e)g, *.avi, *.mkv, *.wmv, *.asf
Perdedores: (Estes são o que eu realmente estou procurando)
*.exe, *.bat, *.dll, *.com, *.lnk
Eu também sei que haverá exceções. Como os arquivos .exe do instalador, usados para instalar algo no Wine. Para os fins desta pergunta, essa preocupação não é uma. Todos os arquivos em questão são cópias (de cópias, possivelmente de ainda mais cópias), então os instaladores que eu realmente quero manter estão em um lugar agradável, seguro e provavelmente protegido contra gravação.
Respostas:
Provavelmente, a maneira mais simples de eliminar o lixo seria na data da criação ou da última modificação (talvez seja necessário experimentar para determinar qual é a melhor) - basta usar a data em que o sistema foi instalado como ponto de partida.
De acordo com o princípio de Pareto, esse filtro simples provavelmente obterá 80% do efeito que você está procurando.
(Obviamente, você pode, ou até deveria, combinar este com as listas em preto e branco que você começou a montar.)
fonte
find . -type f -mtime +572w -exec ls -l {} \;
examinar a saída e possivelmente discar o tempo limite de destino e, em seguida, usar -delete em vez do -exec para excluir em massa os indesejados. Seguido com umfind . -empty -delete
para apagar diretórios e arquivos vazios. Em seguida, use a depuração seletiva de nome de arquivo / extensão. Alguma ideia melhor?find
bandeira útil aqui é-newer
usada assim:find /mnt/windowsfs \! -newer "/mnt/windowsfs/reference/filename" | xargs rm -f
Só você sabe o que precisa / deseja manter. No entanto, você pode, até certo ponto , identificar arquivos de sistema do Windows e outros arquivos de programas instalados.
Instale o Windows e esses programas novamente em uma máquina virtual e faça duas listas de todos os nomes de arquivos na VM;
Na VM, faça a primeira lista do sistema recém-instalado
dir /S /B /A-D C:\ >vmlist.1
Na VM, faça a segunda lista do sistema após as atualizações
dir /S /B /A-D C:\ >vmlist.2
De volta ao * nix, mescle esses dois arquivos e remova linhas duplicadas.
sort -u vmlist.1 vmlist.2 >vmlist
A lista agora ficará assim (mas muito mais, é claro):
C:\name with 6 special chars [$.^|]
C:\Windows\System32\asr_fmt.exe
C:\Windows\System32\asr_ldm.exe
C:\Windows\System32\asr_pfu.exe
Agora converta a lista em
regex
padrões adequados paragrep
sed -r 's/\\/\//g; s/[]$.^|[]/\\&/g; s/^[[:alpha:]]:/^.*/; s/$/$/' vmlist >vmlist.rex
A lista de expressões regulares ficará assim.
^.*/name with 6 special chars \[\$\.\^\|\]$
^.*/Windows/System32/asr_fmt\.exe$
^.*/Windows/System32/asr_ldm\.exe$
^.*/Windows/System32/asr_pfu\.exe$
Faça uma lista dos arquivos contidos no diretório de archive de destino
find '/my/archive/dir' -type f >arclist
Agora faça uma sub-lista de
arclisl
arquivos que correspondam aos padrões de regex.<arclist grep -f vmlist.rex >arcmatches
arcmatches
contém os arquivos correspondentes do Windows. Verifique-os e exclua-os quando estiver satisfeito com o que vê. Aqui está o comando delete (remover).<arcmatches xargs -d'\n' rm -v
fonte
O
thumbs.db
arquivo é inútil em sistemas similares ao Unix, tanto quanto eu sei.É um arquivo (provavelmente oculto) criado para armazenar em cache miniaturas de imagens em sistemas Windows. Como cada pasta de imagem se destaca
thumbs.db
ao exibir as imagens da pasta, pode haver algumas dessas coisas no disco rígido, dependendo do número de pastas de imagens.Eu não sei como todo e qualquer * nix lida com miniaturas, mas pelo menos no meu caso (Ubuntu / GNOME), todas as miniaturas são mantidas juntas por padrão em um só lugar: a
.thumbnails/
pasta no meu diretório pessoal (e em subpastas como.thumbnails/normal
e.thumbnails/large
) . Quando migrei do Windows para o Linux, livrei-me de todos essesthumbs.db
arquivos.fonte
Lista de arquivos do Windows que são inúteis para Unix
Passos
fonte
No diretório raiz de C: /, o arquivo de paginação.sys deve ser um arquivo muito grande e você não precisa mais.
Na maioria das circunstâncias, todo o Windows-Dir não é útil - exceto com um emulador, uma máquina virtual.
As fontes podem ser uma exceção (* .ttf / * .TTF pelo menos).
fonte