OVERVIEW: FSlint - A utility to find File System lint. This includes duplicate files, empty directories, problematic filenames, etc. LICENCE: Copyright © 2000-2009 by Pádraig Brady <P@draigBrady.com>. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, which is available at www.gnu.org CONTACT INFO: Any bugs/patches/suggestions/flames should be directed to: P@draigBrady.com INSTALLATION: RPM or DEB. Note since FSlint does not need to be compiled one can run it directly from the extracted source directory. Please see the FAQ for details on building installation packages. REQUIREMENTS: The 1.1 branch requires textutils >= 2.0.21 or coreutils. In addition for the gui versions: For the 2.40 branch (fedora core 2 or higher) gtk2 >= 2.4 (ftp://ftp.gtk.org/pub/gtk/) python >= 2.3 (http://www.python.org/download/) libglade >= 2.4 (http://ftp.gnome.org/pub/GNOME/sources/libglade/) pygtk2 >= 2.4 (ftp://ftp.gtk.org/pub/gtk/python/) For the 2.0 branch (redhat 8.x or higher) gtk2 >= 2.0 (ftp://ftp.gtk.org/pub/gtk/) python >= 2.0 (http://www.python.org/download/) libglade >= 2.0 (http://ftp.gnome.org/pub/GNOME/sources/libglade/) pygtk2 >= 2.0 (ftp://ftp.gtk.org/pub/gtk/python/) Note the required pygtk2-libglade rpm is also made from pygtk2 source For the 1.2 branch (redhat 7.x or higher) gtk >= 1.2 (ftp://ftp.gtk.org/pub/gtk/) python >= 1.5 (http://www.python.org/download/) libglade >= 0.x (http://ftp.gnome.org/pub/GNOME/sources/libglade/) pygtk >= 1.2 (ftp://ftp.gtk.org/pub/gtk/python/) Note installation order is important if installing from source. DESCRIPTION: FSlint is a toolkit to find redundant/questionable disk usage. The fslint-gui command invokes the GUI interface. There is also a command line interface to each tool which can be accessed from the /usr/share/fslint/fslint directory usually. The command fslint is a wrapper for the various tools which can be called individually. All the tools (including fslint) have the same interface, which is basically: command [-r] [-f] [path1 [path2]...] where the paths are files &/or directories If no paths are specified then the current directory is assumed. -r means do NOT recurse the specified director{y,ies} -f means output full paths even if only 1 path specified some tools have their own options. To get help on each tool do: command --help Any extra commands are passed to find, so any of filtering commands will work, for e.g the following means process the whole system but do not traverse onto any other mounted filesystems: fslint / -xdev More examples: search for duplicates in current directory and below findup or findup . same as above but don't look in subdirectories findup -r . search for duplicate names in /usr/bin findsn /usr/bin search in multiple directories but not their subdirectories findsn -r /usr/bin /bin /usr/sbin /sbin search system for duplicate files over 100K in size findup / -size +100k search only my files (that I own and are in my home dir) findsn ~ -user `id -u` search system for duplicate files names belonging to "root" findsn / -user `id -u root` Note the fslint tools do a lot of inode access and to speed them up you can use the following method to not update access times on disk while gathering inode information: mount -o remount,noatime mountpoint fslint mount -o atime,remount mountpoint