I have accumulated, from my time using Windows a good quantity of held-over filesystem copies and archives of system and data drives. I am trying to distill them down to the usable parts while discarding everything that is likely to be valueless.

From watching a bunch of said files scroll by while copying, once again, from a holding drive to a work drive I think I've got a starter list of "good" and "useless" files started, but I was wondering if there is any authoritative kind of list of files (coming from a previously Windows environment) that should be discarded immediately as unuseful?

Winners: (I know this list would likely turn into a mess if any effort were made to make it comprehensive, so these aren't what I'm looking for, unless they would likely be surrounded by crap that might get them destroyed inadvertently) (edit: If the ONLY way is a super-comprehensive white-list-based method, so be it. I'd prefer if that weren't the case, but beggars can't be choosers... most of the time.)

*.tar.*, *.rar, *.zip
*.mp(e)g, *.avi, *.mkv, *.wmv, *.asf

Losers: (These are what I'm really looking for)

*.exe, *.bat, *.dll, *.com, *.lnk

I also know there will be exceptions. Like installer .exe files, used to install something in Wine. For purposes of this question, this concern isn't one. All the files in question are copies (of copies, possibly of even more copies), so the installers I really want to keep are somewhere nice, safe, and probably write-protected.

  • 7
    Why are you doing this by extension? Shouldn't pretty much everything in your user folder be kept, and everything outside of it not? Commented Aug 5, 2012 at 2:08
  • Having not used windows in quite some time, I'm not up on knowing what directories are valueless, and further, having used non-standard directories for storing things, like putting files in Program Files, or hidden in the Windows directory, I don't discount those as places where gems may be hiding. I know some files generally have more innate value than others, which is why I'm trying to approach this from the "long way around".
    – killermist
    Commented Aug 5, 2012 at 2:26
  • I asked SU about migration, but they weren't interested. I'm not sure anybody has gone about making a list like this; I've always just kept certain folders, not certain file types Commented Aug 26, 2012 at 16:17
  • @MichaelMrozek I appreciate the asking. Would they be upset if I cross-posted it anyway? Or would that just upset things? Or would it (possibly additionally) get flagged/closed as not-on-topic and/or not-a-good-fit?
    – killermist
    Commented Aug 26, 2012 at 17:58
  • Probably; if they didn't want it migrated it was because it's not a good fit Commented Aug 26, 2012 at 18:27

5 Answers 5


Only you know what you need/want to keep. However, you can, to some degree, identify Windows system files and other installed program files.

Install Windows and those programs afresh in a Virtual Machine, then make two lists of all the filenames in the VM;

  1. In the VM, make the first list of the newly installed system

      dir /S /B /A-D C:\ >vmlist.1

  2. In the VM, make the second list of the system after updates

      dir /S /B /A-D C:\ >vmlist.2  

  3. Back in *nix, merge these two files and remove duplicate lines.

      sort -u vmlist.1 vmlist.2 >vmlist  

  4. The list will now look like this (but much longer, of course):

      C:\name with 6 special chars [$.^|]

  5. Now convert the list into regex patterns suitable for grep

    sed -r 's/\\/\//g; s/[]$.^|[]/\\&/g; s/^[[:alpha:]]:/^.*/; s/$/$/' vmlist >vmlist.rex

  6. The regex list will look like this.

      ^.*/name with 6 special chars \[\$\.\^\|\]$

  7. Make a list of files contained in the target archive directory

      find '/my/archive/dir' -type f >arclist

  8. Now make a sub-list from arclisl of files which match the regex patterns.

      <arclist grep -f vmlist.rex >arcmatches  

  9. arcmatches contains the matched Windows files. Check them and delete them when you are satisfied with what you see. Here is the delete (remove) command.

      <arcmatches xargs -d'\n' rm -v

  • While this shows good finesse in "removing windows from archives", it would be impractical (at best) in this case, since some of these are more than a decade old, and the version of windows used would be difficult to determine, if available at all. Finesse would be nice, if it were possible, but I think that as I go through these, it will be brute force that ends up ruling the day(s).
    – killermist
    Commented Aug 5, 2012 at 12:57
  • Is it possible some intrepid person (or plural) has sat down and created published versions of vmlist for Win95 to current (maybe able to stop at WinXP, not sure...)?
    – killermist
    Commented Aug 16, 2012 at 4:27
  • In case you want to go this route, here is a list of virtual machines offered by Microsoft including XP, Vista and 7.
    – phunehehe
    Commented Aug 16, 2012 at 12:07

Probably the simplest way to weed out the trash would be by the created or last-modified date (you might need to experiment to determine which one's better) - just use the date the system was installed as a starting point.

According to Pareto principle that simple filter will probably get you 80% of the effect you are seeking.

(Of course, you may, or even should, combine this one with the black & white lists you have started to assemble.)

  • This seems to be the base of a good idea. Most of the OS files retain their modify/creation date from when they were first stored to CD or packed into an upgrade archive.
    – killermist
    Commented Dec 6, 2012 at 23:43
  • Do you have a recommended find command for doing this? What I've found that seems to maybe be a good start is find . -type f -mtime +572w -exec ls -l {} \; looking through the output and possibly dialing-in the target cutoff time, and then using -delete instead of the -exec to mass delete the unwanteds. Followed up with a find . -empty -delete to rub out empty directories and files. Then using selective filename/extension scrubbing. Any better ideas?
    – killermist
    Commented Dec 8, 2012 at 5:02
  • One useful find flag here is -newer used like this: find /mnt/windowsfs \! -newer "/mnt/windowsfs/reference/filename" | xargs rm -f Commented Dec 9, 2012 at 19:31

The thumbs.db file is useless on Unix-like systems, as far as I know.

It is a (probably hidden) file created to cache thumbnails of images on Windows systems. Since each image folder gets its own thumbs.db when viewing the folder's images, there might be quite a few of these things on your hard disk, depending on the number of image folders.

I do not know how each and ever *nix deals with thumbnails, but at least in my case (Ubuntu/GNOME), all thumbnails are by default kept together in one place: the .thumbnails/ folder in my home directory (and in subfolders like .thumbnails/normal and .thumbnails/large). When I migrated from Windows to Linux, I therefore got rid of all those thumbs.db files.


List of Windows Files those are useless for Unix

  • Thumbs.db, ehthumbs.db, ehthumbs_vista.db
  • *.ini example, desktop.ini
  • *.dll – stands for dynamic link library. Every software uses and needs this files to run. These files can cause a lot of problems specially if you uninstall an antivirus software and then you install a different one.
  • *.sys example, C:/pagefile.sys
  • *.old — files with this extension are usually left behind by antivirus software specially for old definitions, etc.
  • *.bak– the backup files generated by antivirus software or system software when checking the hard disk.
  • Also those extensions *.tmp, *.temp, *.chk, *.gid, *.nch, *.wbk, *.fts, *.ftg, *.$$$, *.err, *.—, .~, ~., *.??$, *._, *.~mp, *._mp, *.prv, *.sik, CHKLIST.MS, *.ilk, *.aps, *.mcp, *.pch, *.$db, *.?$?, *.??~, *.?~?, *.db$, *.^, *._dd, *._detmp, 0*.nch, chklist.*, mscreate.dir, *.diz, *.syd, *.grp, *.cnt, *.~mp
  • broken shortcuts- Some times when uninstalling a program with default add/remove it will leave behind shortcuts for that program.
  • old minidumps- minidumps are files log by windows when the system has a blue screen.


  • If already at Windows (Run defragmenting tool and cleanmgr tool). It will remove many unnecessary files.
  • Remove those file not necessary at Unix.

In the root dir of C:/, pagefile.sys should be a pretty huge file you don't need any more.

In most circumstances, the whole Windows-Dir is not useful - except with an emulator, a virtual machine.

Fonts can be an exception (*.ttf/ *.TTF at least).

  • pagefile was one of the first targets. The windows directory is often a good target, unless users used it to hide files in... which is sometimes a case, and can't be discounted. Fonts are a good target for saving, but might be license-encumbered.
    – killermist
    Commented Dec 6, 2012 at 23:46
  • 1
    @killermist: Well - if you own the Windows License, then you are allowed to use the fonts. If not, not. Commented Dec 7, 2012 at 9:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .