Annotation of 43BSDReno/share/doc/usd/13.edadv/ae5, revision 1.1.1.1

1.1       root        1: .\"    @(#)ae5 6.1 (Berkeley) 5/22/86
                      2: .\"
                      3: .NH
                      4: CUT AND PASTE WITH UNIX COMMANDS
                      5: .PP
                      6: One editing area in which non-programmers
                      7: seem not very confident
                      8: is in what might be called
                      9: `cut and paste' operations _
                     10: changing the name of a file,
                     11: making a copy of a file somewhere else,
                     12: moving a few lines from one place to another in a file,
                     13: inserting one file in the middle of another,
                     14: splitting a file into pieces,
                     15: and
                     16: splicing two or more files together.
                     17: .PP
                     18: Yet most of these operations are actually quite easy,
                     19: if you keep your wits about you
                     20: and go cautiously.
                     21: The next several sections talk about cut and paste.
                     22: We will begin with the
                     23: .UX
                     24: commands
                     25: for moving entire files around,
                     26: then discuss
                     27: .UL ed
                     28: commands
                     29: for operating on pieces of files.
                     30: .SH
                     31: Changing the Name of a File
                     32: .PP
                     33: You have a file named 
                     34: `memo'
                     35: and you want it to be called
                     36: `paper'
                     37: instead.
                     38: How is it done?
                     39: .PP
                     40: The
                     41: .UX
                     42: program that renames files
                     43: is called
                     44: .UL mv
                     45: (for `move');
                     46: it `moves' the file from one name to another, like this:
                     47: .P1
                     48: mv  memo  paper
                     49: .P2
                     50: That's all there is to it:
                     51: .UL mv
                     52: from the old name to the new name.
                     53: .P1
                     54: mv  oldname  newname
                     55: .P2
                     56: Warning: if there is already a file around with the new name,
                     57: its present contents will be
                     58: silently
                     59: clobbered
                     60: by the information from the other file.
                     61: The one exception is that you can't move a file
                     62: to itself _
                     63: .P1
                     64: mv  x  x
                     65: .P2
                     66: is illegal.
                     67: .SH
                     68: Making a Copy of a File
                     69: .PP
                     70: Sometimes what you want is a copy of a file _
                     71: an entirely fresh version.
                     72: This might be because you want to work on a file, and
                     73: yet save a copy in case something gets fouled up,
                     74: or just because you're paranoid.
                     75: .PP
                     76: In any case, the way to do it is with the
                     77: .UL cp
                     78: command.
                     79: .UL cp \& (
                     80: stands for `copy';
                     81: the
                     82: .UC UNIX
                     83: system
                     84: is big on short command names,
                     85: which are appreciated by heavy users,
                     86: but sometimes a strain for novices.)
                     87: Suppose you have a file called
                     88: `good'
                     89: and
                     90: you want to save a copy before you make some
                     91: dramatic editing changes.
                     92: Choose a name _
                     93: `savegood'
                     94: might be acceptable _ then type
                     95: .P1
                     96: cp  good  savegood
                     97: .P2
                     98: This copies
                     99: `good'
                    100: onto
                    101: `savegood',
                    102: and you now have two identical copies of the file
                    103: `good'.
                    104: (If
                    105: `savegood'
                    106: previously contained something,
                    107: it gets overwritten.)
                    108: .PP
                    109: Now if you decide at some time that you want to get
                    110: back to the original state of
                    111: `good',
                    112: you can say
                    113: .P1
                    114: mv  savegood  good
                    115: .P2
                    116: (if you're not interested in
                    117: `savegood'
                    118: any more), or
                    119: .P1
                    120: cp  savegood  good
                    121: .P2
                    122: if you still want to retain a safe copy.
                    123: .PP
                    124: In summary, 
                    125: .UL mv
                    126: just renames a file;
                    127: .UL cp
                    128: makes a duplicate copy.
                    129: Both of them clobber the `target' file
                    130: if it already exists, so you had better
                    131: be sure that's what you want to do
                    132: .ul
                    133: before
                    134: you do it.
                    135: .SH
                    136: Removing a File
                    137: .PP
                    138: If you decide you are really done with a file
                    139: forever, you can remove it
                    140: with the
                    141: .UL rm
                    142: command:
                    143: .P1
                    144: rm  savegood
                    145: .P2
                    146: throws away (irrevocably) the file called
                    147: `savegood'.
                    148: .SH
                    149: Putting Two or More Files Together
                    150: .PP
                    151: The next step is the familiar one of collecting two or more
                    152: files into one big one.
                    153: This will be needed, for example,
                    154: when the author of a paper
                    155: decides that several sections need to be combined
                    156: into one.
                    157: There are several ways to do it,
                    158: of which the cleanest, once you get used to it,
                    159: is a program called
                    160: .UL cat .
                    161: (Not 
                    162: .ul
                    163: all
                    164: .UC UNIX 
                    165: programs have two-letter names.)
                    166: .UL cat
                    167: is short for
                    168: `concatenate', which is exactly
                    169: what we want to do.
                    170: .PP
                    171: Suppose the job is to combine the files
                    172: `file1'
                    173: and
                    174: `file2'
                    175: into a single file called
                    176: `bigfile'.
                    177: If you say
                    178: .P1
                    179: cat  file
                    180: .P2
                    181: the contents of
                    182: `file'
                    183: will get printed on your terminal.
                    184: If you say
                    185: .P1
                    186: cat  file1  file2
                    187: .P2
                    188: the contents of
                    189: `file1'
                    190: and then the contents of
                    191: `file2'
                    192: will
                    193: .ul
                    194: both
                    195: be printed on your terminal,
                    196: in that order.
                    197: So
                    198: .UL cat
                    199: combines the files, all right,
                    200: but it's not much help to print them on the terminal _
                    201: we want them in 
                    202: `bigfile'.
                    203: .PP
                    204: Fortunately, there is a way.
                    205: You can tell
                    206: the system
                    207: that instead of printing on your terminal,
                    208: you want the same information put in a file. 
                    209: The way to do it is to add to the command line
                    210: the character
                    211: .UL >
                    212: and the name of the file
                    213: where you want the output to go.
                    214: Then you can say
                    215: .P1
                    216: cat  file1  file2  >bigfile
                    217: .P2
                    218: and the job is done.
                    219: (As with
                    220: .UL cp
                    221: and
                    222: .UL mv ,
                    223: you're putting something into
                    224: `bigfile',
                    225: and anything that was already there is destroyed.)
                    226: .PP
                    227: This ability to
                    228: `capture' the output of a program
                    229: is one of the most useful aspects of
                    230: the 
                    231: .UC UNIX
                    232: system.
                    233: Fortunately it's not limited to the
                    234: .UL cat 
                    235: program _
                    236: you can use it with 
                    237: .ul
                    238: any
                    239: program that prints on your terminal.
                    240: We'll see some more uses for it in a moment.
                    241: .PP
                    242: Naturally, you can combine several files,
                    243: not just two:
                    244: .P1
                    245: cat  file1  file2  file3  ...  >bigfile
                    246: .P2
                    247: collects a whole bunch.
                    248: .PP
                    249: Question:
                    250: is there any difference between
                    251: .P1
                    252: cp  good  savegood
                    253: .P2
                    254: and
                    255: .P1
                    256: cat  good  >savegood
                    257: .P2
                    258: Answer: for most purposes, no.
                    259: You might reasonably ask why there are two programs
                    260: in that case,
                    261: since
                    262: .UL cat
                    263: is obviously all you need.
                    264: The answer is that 
                    265: .UL cp
                    266: can do some other things as well,
                    267: which you can investigate for yourself
                    268: by reading the manual.
                    269: For now we'll stick to simple usages.
                    270: .SH
                    271: Adding Something to the End of a File
                    272: .PP
                    273: Sometimes you want to add one file to the end of another.
                    274: We have enough building blocks now that you can do it;
                    275: in fact before reading further it would be valuable
                    276: if you figured out how.
                    277: To be specific,
                    278: how would you use
                    279: .UL cp ,
                    280: .UL mv
                    281: and/or
                    282: .UL cat
                    283: to add the file
                    284: `good1'
                    285: to the end of the file
                    286: `good'?
                    287: .PP
                    288: You could try
                    289: .P1
                    290: cat  good  good1  >temp
                    291: mv  temp  good
                    292: .P2
                    293: which is probably most direct.
                    294: You should also understand why
                    295: .P1
                    296: cat  good  good1  >good
                    297: .P2
                    298: doesn't work.
                    299: (Don't practice with a good `good'!)
                    300: .PP
                    301: The easy way is to use a variant of
                    302: .UL > ,
                    303: called
                    304: .UL >> .
                    305: In fact,
                    306: .UL >> 
                    307: is identical to
                    308: .UL >
                    309: except that instead of clobbering the old file,
                    310: it simply tacks stuff on at the end.
                    311: Thus you could say
                    312: .P1
                    313: cat  good1  >>good
                    314: .P2
                    315: and
                    316: `good1'
                    317: is added to the end of
                    318: `good'.
                    319: (And if
                    320: `good'
                    321: didn't exist,
                    322: this makes a copy of
                    323: `good1'
                    324: called
                    325: `good'.)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.