- "". , - . "" , can , , , . dosflp - , MS-DOS XENIX. - . 3.1.3.  " " - . Autobkp , , . - , - 24 . Cpiobr cpio UNIX. , , . 3.1.4.  , - , , , - . dsum , - . log , , , () . UNIX . - , , " - " UNIX. - . , . , . ( - , !) , - , . , - , . 3.2.  3.2.1. cptdir - : cptdir cptdir , - , . - - . cptdir [-s] - - cptdir $HOME /bkp $HOME /bkp. cptdir 1 : 2 # &(#) cptdir v.1.0 Copy a directory tree Autor: Russ Sage 4 if [ $# -lt 2 -o $# -gt 3 ] 5 then echo "cptdir: argument error" >&2 6 echo "usage: cptdir [-s] srcdir desdir" >&2 7 echo " -s silent mode" >&2 8 exit 1 9 fi 11 if [ "$1" ="-s" ] 12 then OPT="-pd" 13 shift 14 else OPT="-pdv" 15 fi 17 SRC=$1 18 DEST=$2 19 umask 0 21 if [ -d $DEST ] 22 then echo "\"$DEST\" already exist. Remove it? (y/n): \c" 23 read CMD 24 if [ "$CMD" = "y" ] 25 then rm -rf $DEST 26 mkdir $DEST 27 fi 28 else mkdir $DEST 29 fi 31 if [ "`echo $DEST|cut -c1`" = "/" ] 32 then cd $SRC 33 find . -print | sort | cpio $OPT $DEST 34 else PWD=`pwd` 35 cd $SRC 36 find . -print | sort | cpio $OPT $PWD/$DEST 37 fi   CMD , DEST -, OPT , cpio PWD SRC -, cptdir? , UNIX. - UNIX tar . -r cp, cp ( System V) cpio. - , , . - UNIX , , . , . , - (inode), - - . . , - . , - . , - UNIX. cptdir? cptdir ( , ) . - - ( ), - . , , . , -s ("silent" - ). "verbose" (), . , , . , - , . (inodes) . " - " . - - -. , - "-s". , . , , , - -s. - , , . , . - , . - , , . "yes", . "no", , - . - , - -. , , - - . - , - , cpio . , cpio . cptdir - - , , - . , - , , , . - -. ( , ). , cpio, - -. , , - . 1. $ cd /mnt $ cptdir /bin . ( /mnt) /bin . - , /mnt/*, . 2. $ cd /bin $ cptdir . /mnt/bin , , , . - /mnt/bin. /mnt/bin/*, - . 3. $ cptdir /bin /mnt , 1. 4. $ cptdir /bin /mnt/bin , 2. 4-9 . , . - -. - . , -s, - -. 11-15 cpio. pdv, "pass" () - ( ), "directory" () "verbose" (- ) . -s, cptdir , cpio , . 17,18 19 "" "" - umask 0. umask - , - . umask , - - . , rwxrwxrwx, - rw-rw-rw-, - . umask - . cptdir , umask . 21-29 -. , , . , cpio. 31-36 . , , , cpio. find , , cpio. "find . -print", , : ./dir ./dir/file1 ./dir/file2 , , - , - , . - , , , , . , "find /dir -print", - : /dir /dir/file1 /dir/file2 , /dir "/" . - cpio . , "cd /src; find . -print | cpio -pdv /dest", - : /dest/./dir /dest/./dir/file1 /dest/./dir/file2 , , , . , "find /src -print | cpio -pdv /dest", : /dest/src/dir /dest/src/dir/file1 /dest/src/dir/file2 , , - . , "src" - . , find, cpio , src -. . , "cd /nowhere; find /src ....", - . - . , cptdir. 31 , " " ("/"). , , - - , . 32-33 - - . - , . , , , - , . , - 34 pwd , . - , pwd , . , , - () find. , -. find, - , . , - cd "" , , - . , - , , , - . cptdir , - , - . , , - , , .   cpio. , , , ( -l) ( -a)? - . - . , . : for ARG in $* do if [ "`echo $ARG|cut -c1`" = "-" ] then CPIOARG="CPIOARG $ARG" shift fi done CPIOARG cpio. , - - . , 0 umask , . , find , - ( ). , , . - "find /dir -print", : /dir /dir/file1 /dir/file2 , . , . : , - ( ) file1 file2 dir. cptdir - umask , . , . - find. "find /dir -depth -print" : /dir/file1 /dir/file2 /dir , ! - . -depth , - . ? , file1 file2, . - , . - , , , . , -depth find UNIX. 3.2.2. can - " " ---------------------------------------------------------------------- : can ______________________________________________________________________ can " "  " ", . . can [-l] [-r] file [file ...] can junk junk " " can 1 : 2 # @(#) can v1.0 Maintain file trash can Author: Russ Sage 4 CAN=$HOME/.trashcan 6 if [ ! -d $CAN ] 7 then mkdir $CAN 8 fi 10 if [ "`echo \"$1\"|cut -c1`" = "-" ] 11 then case $1 in 12 -l) echo "$CAN:" 13 ls -al $CAN 14 exit 0;; 15 -r) echo "removing $CAN/*:" 16 rm -rf $CAN/* 17 exit 0;; 18 -z|-?) echo "usage can [-l] [-r] file [file ...]" >&2 19 exit 0;; 20 esac 21 fi 23 mv $@ $CAN CAN " " HOME can? UNIX, , . , . , . , - , . rm - , : - ( - , - ). rm: rm * /tmp <-- /tmp rm /tmp/*, , /tmp. , tmp - . , , , - ! UNIX, "grep * file": . rm -rf / tmp <-- tmp rm -rf /tmp, - . ( ), UNIX - ! rm. , - , . . . , , , . , , - . " " , "". , , . , , "". - " ", , , - . , , . can? can " " . , . Can " ", - , , . Can -l -r. -l , - " ", -r . , - " ", . " " mv. , can, - . mv, . , , - -z -?. - - . , (help) , mv, can, , - can. , (.. "" ), - . (, , ) UNIX - -z -? , . can , - " ", - $HOME/.trashcan. , can. , "". -r, " " , . 1. $ can *.c , .c, " - ". 2. $ can -l , " - ". 3. $ can -r " ". 4. $ can -q * -q mv. - mv, . 4 " " , .trashcan. - , , , - , . - -a ls. 6-8 , " - ". , . , - , , . 10-21 , (-). , , can (-l, -r, -z -?). , , ( 10), . (\) . -l, " ", ls " - " can , . -r, - " " rm. - . can - . , , - . -z -?, can . , - *, , mv, can. - , . can, , - mv. , mv . , , - , - mv "" . , can, mv. , . 23 " - ". , can, can, . $@. , , mv, . , " ". 3.2.3. dosflp - MS-DOS ------------------------------------------------------------------- : dosflp _____________________________________________________________________ dosflp DOS  DOS ( XENIX) . - - , .   dosflp [-a] [-c] [-dDRIV] [-eEXP][-h] [-l] [-r] [-sDIR] -a , *.asm -c , *.c -d DRIV A,B,X,Y ( A) -e EXP, grep -h , *.h -l -r -s DIR DOS dosflp A: dosflp 1 : 2 # @(#) dosflp v1.0 Wildcard copies from DOS floppy Author: Russ Sage 4 EXP=.\* 5 DRIVE="A:" 6 OP="c" 8 if [ "$#" -gt 0 ] 9 then for ARG in $@ 10 do 11 case "$ARG" in 12 -a) EXP='.*\.asm$';; 13 -c) EXP='.*\.c$';; 14 -d*) DRIVE="`echo $ARG | cut -c3-`:";; 15 -e*) EXP='`echo $ARG | cut -c3-`';; 16 -h) EXP='.*\.h$';; 17 -l) OP="l";; 18 -r) OP="r";; 19 -s*) DRIVE="$DRIVE`echo \"$ARG" | cut -c3- `/";" 20 *) echo "dosflp: arg error" 21 echo "usage: dosflp [-a] [-c] [-d] [-e] [-h] [-l] [-r] [-s]" 22 exit 1;; 23 esac 24 done 25 fi 27 case $OP in 28 c) echo "\nCopying files from $DRIVE to `pwd`";; 29 l) echo "\nListing files on $DRIVE" 30 dosdir $DRIVE | more 31 exit;; 32 r) echo "This option removes all the data on the floppy." 33 echo -n "Do you want to do this (y/n): " 34 read RSP 35 if [ "$RSP" = "y" ] 36 then echo "\nRemoving files on $DRIVE" 37 else exit 38 fi;; 39 esac 41 dosls $DRIVE | tr "[A-Z]" "[a-z]" > /tmp/doslist 43 for FILE in `grep "$EXP" /tmp/doslist` 44 do 45 echo $FILE 46 case $OP in 47 c) doscp $DRIVE$FILE .;; 48 r) dosrm $DRIVE$FILE;; 49 esac 50 done 52 rm /tmp/doslist ARG DRIVE DOS EXP , - FILE , OP , dosflp? XENIX. XENIX, Microsoft, - MS-DOS. - DOS XENIX . . - MS DOS, XENIX. , . 70- , , - , 17 . - , . , MS-DOS - XENIX, . XENIX/DOS , XENIX - , DOS . ? "fdisk" . , XENIX DOS, , . , DOS, - , DOS (.. DOS). - , . , DOS XENIX. . DOS. UNIX, DOS, , , DOS. , DOS - DOS, DOS . XENIX , . dosflp - DOS. . , DOS , - DOS, XENIX. - , . , "doscp *.c a:". - .c, DOS a:. doscp , ( ) / , DOS , XENIX. , DOS XENIX, . , "doscp a:*.c". doscp *.c . , - (*,?,[]) DOS. DOS. , , DOS. -, - . DOS . XENIX , XENIX. , DOS, , - , . , DOS , "spreadsheet.finance" DOS "spreadsh.fin" - . . XENIX DOS, DOS . , , . XENIX, . XENIX, . , , , , . - dosflp. dosflp? Dosflp - XENIX/DOS. , . dosflp : , - , - , , XENIX. , , XENIX dosxx, XENIX. , dosflp , - DOS, . , , . . , C - C. , , dosflp. , -a ,