On Sun, 06 May 2007 14:46:22 +0200, "A.J.Mechelynck"
<[EMAIL PROTECTED]> wrote:

> Michael Henry wrote:
> > Gary Johnson wrote:
> >> On 2007-05-05, "A.J.Mechelynck" <[EMAIL PROTECTED]> wrote:
> >>>  (Warning: In the "ln" command as used here, the target name comes 
> >>> before the  link name. I find this counter-intuitive.)
> >>
> >> It's not just me then.  I have to think carefully about that every 
> >> time I use ln.
> > 
> > I used to find this hard to remember until I realized that 'ln' and 'cp' 
> > are very similar.  The 'cp' command copies one or more sources to a 
> > destination; the 'ln' command links one or more sources to a destination 
> > as well.  I tend to think of 'ln -s' as "copy using symlinks".  The 
> > order and meaning of the arguments is the same between the commands, 
> > which I now find consistent and intuitive.
> 
> The problem is, "cp -v file1 file2" outputs
> 
>       `file1' -> `file2'
> 
> ("the data has been copied from file1 to file2") but "ln -sv file1 file2" 
> outputs
> 
>       file2 -> file1
> 
> ("file2 is now a link pointing to file1"). I still have to call up the help 
> or 
> the manual every time I invoke it.

Just remember that for all of cp, ln and mv, the existing file comes
first.

I think the confusion arises because people think of ln as "create a
link", so they see "ln x y" as "create a link x...", which it isn't.
It makes more sense if you think of it this way:

mv x y    move file x to file y
cp x y    copy file x to file y
ln x y    link file x to file y

-- 
Matthew Winn

Reply via email to