Windowsを使用して以来、私はファイルシステムのアーカイブコピーとシステムとデータドライブのアーカイブを大量に蓄積してきました。価値がないかもしれないものはすべて捨てて、蒸留して役に立つ部分にしようと努力します。
上記のファイルの束がコピーされている間にスクロールして保存ドライブから作業ドライブに移動するのを見ると、「良い」ファイルと「無駄な」ファイルの開始リストがあるようですが、そこにいるかどうか疑問に思います。信頼できる種類のファイルのリスト(以前のWindows環境では)は役に立たないため、すぐに削除する必要がありますか?
受賞者:(このリストを包括的に作成しようとすると台無しになる可能性があることがわかっているので、誤って台無しになる可能性があるゴミに囲まれていない限り、このリストは私が探しているものではありません。)(編集:唯一の方法が非常に包括的なホワイトリストベースのアプローチである場合は、そうします。そうでなければいいのですが、乞食はセレクタになることはできません...ほとんどの場合。)
*.tar.*, *.rar, *.zip
*.mp(e)g, *.avi, *.mkv, *.wmv, *.asf
失敗者: (これは私が本当に欲しいものです)
*.exe, *.bat, *.dll, *.com, *.lnk
また、例外があるということも知っています。 Wineに何かをインストールするために使用されるインストーラ.exeファイルと同じです。この質問の目的のために、そのような懸念は問題ではありません。問題のすべてのファイルはコピー(コピー、おそらくより多くのコピー)なので、私が本当に保存したいインストーラは安全で書き込み禁止の場所にあります。
ベストアンサー1
あなただけがあなたが必要とするもの/保有したいことが何であるかを知っています。しかし、次のようにすることができます。ある程度は、Windowsシステムファイルと他のインストール済みプログラムファイルを識別します。
仮想マシンにWindowsとこれらのプログラムを再インストールし、2つのリストを作成します。みんな仮想マシンのファイル名。
VM で新しくインストールされたシステムの最初のリストを作成します。
dir /S /B /A-D C:\ >vmlist.1
VMで更新されたシステムの2番目のリストを作成します。
dir /S /B /A-D C:\ >vmlist.2
* nixに戻り、2つのファイルをマージして重複した行を削除します。
sort -u vmlist.1 vmlist.2 >vmlist
今リストは次のようになります(もちろん長いですが)。
C:\name with 6 special chars [$.^|]
C:\Windows\System32\asr_fmt.exe
C:\Windows\System32\asr_ldm.exe
C:\Windows\System32\asr_pfu.exe
リストを
regex
適切なスキーマに変換します。grep
sed -r 's/\\/\//g; s/[]$.^|[]/\\&/g; s/^[[:alpha:]]:/^.*/; s/$/$/' vmlist >vmlist.rex
正規表現のリストは次のとおりです。
^.*/name with 6 special chars \[\$\.\^\|\]$
^.*/Windows/System32/asr_fmt\.exe$
^.*/Windows/System32/asr_ldm\.exe$
^.*/Windows/System32/asr_pfu\.exe$
ターゲットアーカイブディレクトリに含まれるファイルの一覧表示
find '/my/archive/dir' -type f >arclist
今一つ作るサブリスト
arclisl
正規表現パターンに一致するファイルから。<arclist grep -f vmlist.rex >arcmatches
arcmatches
一致するWindowsファイルが含まれています。確認して満足している場合は削除してください。削除コマンドです。<arcmatches xargs -d'\n' rm -v