tazlito rev 69
Link duplicate links
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Thu May 22 15:41:01 2008 +0000 (2008-05-22) |
parents | 68bbfaa51808 |
children | 504b8e5ba288 |
files | tazlito |
line diff
1.1 --- a/tazlito Thu May 22 14:48:49 2008 +0000 1.2 +++ b/tazlito Thu May 22 15:41:01 2008 +0000 1.3 @@ -255,26 +255,36 @@ 1.4 echo "" 1.5 1.6 # Link duplicate files 1.7 - find . -type f -size +0c -exec stat -c '%s %a %u %g %Y %i %n' {} \; | \ 1.8 - sort | ( save=0; old_owner=""; old_group=""; old_size="" 1.9 - old_time=""; old_perm=""; old_inode=""; old_file="" 1.10 - while read size perm owner group time inode file; do 1.11 - if [ "$size" = "$old_size" -a "$perm" = "$old_perm" -a \ 1.12 - "$owner" = "$old_owner" -a "$group" = "$old_group" -a \ 1.13 - "$inode" != "$old_inode" ]; then 1.14 + find . -type f -size +0c -exec stat -c '%s-%a-%u-%g %i %h %n' {} \; | \ 1.15 + sort | ( save=0; old_attr=""; old_inode=""; old_link=""; old_file="" 1.16 + while read attr inode link file; do 1.17 + if [ "$attr" = "$old_attr" -a "$inode" != "$old_inode" ]; then 1.18 if cmp "$file" "$old_file" >/dev/null; then 1.19 rm -f "$file" 1.20 ln "$old_file" "$file" 1.21 - inode="$old_inode" 1.22 - save="$(expr $save + $size)" 1.23 + [ "$link" = "1" ] && save="$(expr $save + ${attr%%-*})" 1.24 fi 1.25 fi 1.26 - old_size="$size" ; old_perm="$perm"; old_owner="$owner" 1.27 - old_group="$group"; old_time="$time"; old_inode="$inode" 1.28 - old_file="$file" 1.29 + old_attr="$attr" ; old_inode="$inode" ; old_file="$file" 1.30 done 1.31 echo "$save bytes saved in duplicate files." 1.32 ) 1.33 + 1.34 + # Link duplicate links 1.35 + find . -type l -size +0c -exec stat -c '%s-%a-%u-%g %i %h %n' {} \; | \ 1.36 + sort | ( save=0; old_attr=""; old_inode=""; old_link=""; old_file="" 1.37 + while read attr inode link file; do 1.38 + if [ "$attr" = "$old_attr" -a "$inode" != "$old_inode" ]; then 1.39 + if [ "$(readlink $file)" = "$(readlink $old_file)" ]; then 1.40 + rm -f "$file" 1.41 + ln "$old_file" "$file" 1.42 + [ "$link" = "1" ] && save="$(expr $save + ${attr%%-*})" 1.43 + fi 1.44 + fi 1.45 + old_attr="$attr" ; old_inode="$inode" ; old_file="$file" 1.46 + done 1.47 + echo "$save bytes saved in duplicate links." 1.48 + ) 1.49 1.50 # Use lzma if installed 1.51 if [ "$COMPRESSION" = "none" ]; then