From: Keith M. <kei...@to...> - 2006-04-11 11:21:42
|
Ralf Wildenhues wrote, quoting me: >> $ mkdir foo >> >> $ ln foo bar >> ln: `foo': hard link not allowed for directory > > I believe you will have trouble finding a unixy system younger than > a decade that allows hard links _from_ directories; they were a nice > way to seriously screw a file system once (so I have been told). So > no, nobody going for portability should expect that to work. During the 1990s, I ran a Venix based control system which, IIRC, did allow hard linked directories, but didn't have symlinks; (it's long since defunct, so I can't actually confirm this). > Did you maybe mean that > mkdir foo > touch bar > ln bar foo > also would not work (untested)? No. I was playing Devil's Advocate, with a view to prompting us to consider a full gamut of possibilities. For the record: $ mkdir foo $ touch bar $ ln bar foo ln: `foo': cannot overwrite directory fails with MSYS `ln', just as `ln -s' does, in this same scenario. To (hopefully) put this to bed, here's how MSYS handles various possibilities on NTFS: $ ln [dir1/]file1 [dir2/]file2 ; # works -- creates hard link $ ln -s [dir1/]file1 [dir2/]file2 ; # works -- same as `cp -p' $ ln [dir1/]file dir2 ; # fails $ ln -s [dir1/]file dir2 ; # fails $ cd dir2; ln [dir1/]file ... . ; # works -- creates hard link(s) $ cd dir2; ln -s [dir1/]file ... . ; # works -- same as `cp -p' $ ln dir1 dir2 ; # fails $ ln -s dir1 dir2 ; # fails Any other permutations you think we should check? Regards, Keith. |