home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 0 / 0994 < prev    next >
Internet Message Format  |  1990-12-28  |  2KB

  1. From: istvan@hhb.UUCP (Istvan Mohos)
  2. Newsgroups: alt.sources
  3. Subject: directory clusters
  4. Message-ID: <319@hhb.UUCP>
  5. Date: 7 Mar 90 14:08:42 GMT
  6.  
  7.  
  8. A very nice utility, in perl, posted by jv@squirrel.mh.nl (Johan Vromans).
  9. Here is a recursive C shell version.
  10.  
  11. ==============================CUT HERE====================================
  12. #! /bin/csh -f
  13. # lndir --- original in perl, by Johan Vromans
  14. # Recursive C shell version by Istvan Mohos, 03/07/90
  15. # change '/dev/null &&' to '/dev/null ||' for System III, XENIX
  16.  
  17. set PROG = $0
  18. # if source or target directory not specified, print usage and exit
  19. if ($#argv < 2) then
  20.     echo "Usage: $PROG:t <sourcedir> <targetdir>\
  21.     to replace each exact <targetdir> copy of <sourcedir> files\
  22.     with a hard link from <targetdir> to the <sourcedir> file."
  23.     exit 1
  24. endif
  25.  
  26. # verify that directories exist
  27. if (! -d $argv[1] || ! -d $argv[2]) exit 0
  28. echo $PROG:t $argv[1] $argv[2]
  29.  
  30. # compare same size files if inodes are different
  31. foreach file ($argv[1]/.[+--]* $argv[1]/.[0-z]* $argv[1]/*)
  32.     set EGO = $file:t
  33.     if (-f $file) then
  34.         if (-f $argv[2]/$EGO) then
  35.             set F1 = `/bin/ls -li $file`
  36.             set F2 = `/bin/ls -li $argv[2]/$EGO`
  37.             if (($F1[1] != $F2[1]) && ($F1[5] == $F2[5])) then
  38.                 /bin/cmp $file $argv[2]/$EGO >& /dev/null && \
  39.                 (/bin/rm -f $argv[2]/$EGO; /bin/ln $file $argv[2]; \
  40.                 echo linking $EGO)
  41.             endif
  42.         endif
  43.     else
  44.         $0 $file $argv[2]/$EGO
  45.     endif
  46. end
  47. exit 0
  48. -- 
  49.         Istvan Mohos
  50.         ...uunet!pyrdc!pyrnj!hhb!istvan
  51.         RACAL-REDAC/HHB 1000 Wyckoff Ave. Mahwah NJ 07430 201-848-8000
  52. ======================================================================
  53.