Advantages of this Copy: - can be called like original Copy - complete replacement - replaces programs Copy, MakeLink, Delete, Rename, MakeDir (and Move) - has option to delete source-file (MOVE) - can rename the files instead of moving (when on same device) - can produce hardlinks and softlinks - has 3 different grades of beeing quiet - able to copy protection bits, comments, dates - processes directories recursive - may turn off overwrite mode - may force overwriting (unprotect destination) - may force deletion (unprotect source) - produces destination directories recursiv! (Not only the last one) Copy needs OS 37 (2.0) or later OS versions! Of course this Copy is reentrant (pure bit) like the original one. ************************************************************************** USAGE: FROM/M,TO,PAT=PATTERN/K,BUF=BUFFER/K/N,ALL/S,DIRECT/S,CLONE/S,DATES/S, NOPRO/S,COM=COMMENT/S,QUIET/S,SILENT/S,NOREQ/S,ERRWARN/S,MAKEDIR/S, MOVE/S,DELETE/S,HARD=HARDLINK/S,SOFT=SOFTLINK/S,FOLNK=FORCELINK/S, FODEL=FORCEDELETE/S,FOOVR=FORCEOVERWRITE/S,DONTOVR=DONTOVERWRITE/S, FORCE/S: FROM multiple input files TO destination file or directory PATTERN a pattern the filenames must match BUFFER buffersize for copy buffer (default 200 [100K]) ALL deep scan into sub directories DIRECT copy mode only: copy file without any tests or options CLONE copy comment, protection bits and date as well DATES copy dates NOPRO do not copy protection bits COMMENT copy filecomment QUIET suppress all output and requesters SILENT suppress output, but not errors and requesters NOREQ suppress requesters ERRWARN do not proceed, when one file failed MAKEDIR produce directories MOVE delete source files after copying successful DELETE do not copy, but delete the source files HARDLINK make a hardlink to source instead of copying SOFTLINK make a softlink to source instead of copying FOLNK also makes links to directories FODEL delete protected files also FOOVR also overwrite protected files DONTOVR do never overwrite destination FORCE DO NOT USE. Call compatibility only. ************************************************************************** FROM: Source file(s). For directories, all contained files are source files. May have standard AmigaDOS patterns. TO: Destination file or for multiple sources destination directory. Destination directories are created (including all needed parent directories). PAT=PATTERN: PATTERN allows to specify a standard dos pattern, all file have to match. This is useful with ALL option. Example: When you want to delete all .info files in a directory tree, you need this option: Copy DELETE #? ALL PAT #?.info BUF=BUFFER: Specify the number of 512 byte buffers for copying. Default are 200 buffers [100KB memory]. One buffer is minimum size, but should never be used. ALL: Scan directories recursively DIRECT: Certain devices do not allow some of the used DOS packet request types. This option is a really easy copy command, which only opens source and destination directly without any tests and checks. Options ALL, PAT, CLONE, DATES, NOPRO, COM, MAKEDIR, MOVE, DELETE, HARD, SOFT, FOLNK, FODEL, FOOVR, DONTOVR and multiple input files cannot be specified together with DIRECT. This options needs one input and one output file. When you want to delete a softlink, which does no longer point to a valid file, you need this option as well. Example use: 'Copy DIRECT text PRT:' to print a file called text. - Copy manages a lot of such cases automatically, but maybe this option is needed sometimes. CLONE: The filecomment, date and protection bits of the source files are copied to destination file or directory. DATES: The date information of source is copied to destination. NOPRO: The protection bits of sources are NOT copied. So the destination gets default bits [rwed]. COM=COMMENT: The filecomment is copied to destination. QUIET: Copy is completely silent here. Really no output is given, also no requests for missing disks or other problems! SILENT: Copy is silent. Only error messages and requests are printed. NOREQ: No standard DOS requests are displayed, when an error occurs. ERRWARN: Copy knows and returns the 3 types of dos.library errors: 5 WARN The processing of one file failed, Copy skips this file and proceeds the next. 10 ERROR The creation of a directory or any other bad error happend. Copy quits after that. 20 FAIL A really hard error happend (No memory, Examine failed, ...) Copy quits after that. When option ERRWARN is used, the result 5 (WARN) gets result 10 (ERROR). So Copy aborts everytime an error occured. MAKEDIR: All names specified in FROM field are taken as directories, which must be created. MOVE: The files are not copied, but moved (or renamed). This means that after move operation the source does no longer exist. DELETE: This does not copy anything, but delete the source files! HARD=HARDLINK: Instead of copying the files, a hard link is created. This only works, when destination is on same device as source. When ALL option is specified, the directories are scanned recursively, else Copy produces links to the directories. SOFT=SOFTLINK: Instead of copying directories, a soft link is created. These links are useable between different devices also. Soft links are only created for directories. Files are skipped here. Option FORCELINK is therefor always set to true. NOTE: Softlinks are not official supported by OS and may be dangerous. I suggest not to use this option! See description below. FOLNK=FORCELINK: When linking of directories should be possible, this option is needed. See section "About links" for possible problems. FODEL=FORCEDELETE: When this option is enabled, files are deleted also, when they are delete protected. FOOVR=FORCEOVERWRITE: When this option is enabled, files are overwritten also, when they are protected. DONTOVR=DONTOVERWRITE: This option prevents overwriting of destination files. ************************************************************************** Some comments on how the program does it's job: The program has 6 working modes: COPY, MOVE, SOFTLINK, HARDLINK, DELETE and MAKEDIR. Only one of these can be used at same time! Move option renames the files, when on same device, else the file is copied and the source deleted after that. When a directory is processed and on the same device it is renamed! This means MOVE option copies complete directories also without ALL option (when on same device). In Copy mode you may use f.e. "Copy C: RAM:K" instead of "Copy C:#? RAM:K". For the other modes this does not work! Destination files are always overwritten, except DONTOVERWRITE is turned on, or they are protected. When the destination directory does not exists, it is created. Existing files with same name are overwritten. When some parent directories do not exist, they are also created. This is also done, when only one file is copied. The program does a loop detection, so that copying/moving/linking with a sub directory of source as destination and ALL option is not possible. Example: Copy RAM:S RAM:S/C ALL ************************************************************************** Useful aliases you may add to S:User-StartUp: Alias Delete Copy [] DELETE Alias MakeDir Copy [] MAKEDIR SILENT Alias MakeLink Copy TO [] HARDLINK SILENT Alias Move Copy [] MOVE CLONE Alias Rename Copy [] MOVE CLONE SILENT Some programs do want the files to be in C: directory. For these you may additionally use following lines: Alias C:Delete Copy [] DELETE Alias C:MakeDir Copy [] MAKEDIR SILENT Alias C:MakeLink Copy TO [] HARDLINK SILENT Alias C:Rename Copy [] MOVE CLONE SILENT ************************************************************************** About links: HARDLINKS: When copying one file to annother place on same disk, the file afterwards uses double space. Links are a method to resolve that problem. When using a link, the file is not copied, but only a new entry to the same data as created. This saves space and allows to have copies of files always up-to-date (as when on link is updated, all the others are new as well). SOFTLINKS: This is a link method, which is NOT official supported by the OS. Soft links do not need to be on the same partition. The may be used for references between different partitions. NOTE: Using this links may cause lots of problems. You may test for yourself if it works for you! PROBLEMS: Links to directories may cause infinite directory loops! Example: Having following directory tree: DEV: / \ A B Some loops are detected, for example when trying to do: MakeLink DEV:A/C DEV:A FORCE Here you get an error message, that loops are not allowed. Some more complicated links cannot be detected: MakeLink DEV:A/C DEV:B FORCE and MakeLink DEV:B/C DEV:A FORCE Till now no error message is possible, so the result is an infinite loop. ************************************************************************** This program is Freeware. Use it as you want, but WITHOUT ANY WARRANTY! Although you get program and complete sources, this program is still copyrighted by me. No changes should be done to it or it's distribution archive contents. When you use this program more than once, you have to contact the author via e-mail or snail-mail! Please report me bugs, comments, suggestions and problems. If there are some Enforcer hits or other problems report them as good as possible. Please contact me: **************************************************************************** * snail-mail: * e-mail: * * Dirk Stoecker * stoecker@rcs.urz.tu-dresden.de * * Geschwister-Scholl-Str. 10 * stoecker@amigaworld.com * * 01877 Bischofswerda * world wide web: * * GERMANY * http://gremlin.home.pages.de/ * * phone: * pgp key: * * GERMANY +49 (0)3594/706666 * get with finger or from WWW pages * ****************************************************************************