tazlito rev 57

Link duplicates files
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Apr 12 23:50:34 2008 +0000 (2008-04-12)
parents f5662e570e4e
children e3db72f3e61b
files tazlito
line diff
     1.1 --- a/tazlito	Thu Mar 20 11:51:53 2008 +0000
     1.2 +++ b/tazlito	Sat Apr 12 23:50:34 2008 +0000
     1.3 @@ -252,6 +252,28 @@
     1.4  	genisohooks rootfs
     1.5  	cd $ROOTFS
     1.6  	echo ""
     1.7 +
     1.8 +        # Link duplicate files
     1.9 +        find . -type f -size +0c -exec stat -c '%s %a %u %g %Y %i %n' {} \; | \
    1.10 +           sort | ( save=0; old_owner=""; old_group=""; old_size=""
    1.11 +           old_time=""; old_perm=""; old_inode=""; old_file=""
    1.12 +           while read size perm owner group time inode file; do
    1.13 +               if [ "$size"  =  "$old_size"  -a "$perm" = "$old_perm"   -a \
    1.14 +                    "$owner" =  "$old_owner" -a "$group" = "$old_group" -a \
    1.15 +	            "$inode" != "$old_inode" ]; then
    1.16 +                   if cmp "$file" "$old_file" >/dev/null; then
    1.17 +                       rm -f "$file"
    1.18 +                       ln "$old_file" "$file"
    1.19 +                       inode="$old_inode"
    1.20 +                       save="$(expr $save + $size)"
    1.21 +                   fi
    1.22 +               fi
    1.23 +               old_size="$size"  ; old_perm="$perm"; old_owner="$owner"
    1.24 +               old_group="$group"; old_time="$time"; old_inode="$inode"
    1.25 +               old_file="$file"
    1.26 +           done
    1.27 +        echo "$save bytes saved in duplicate files."
    1.28 +	
    1.29  	# Use lzma if installed
    1.30  	if [ "$COMPRESSION" = "none" ]; then
    1.31  		echo -n "Generating uncompressed initramfs... "