Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 2009 16:39:23 +0100
From:      Erik Trulsson <ertr1013@student.uu.se>
To:        John Almberg <jalmberg@identry.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: links vs real directories
Message-ID:  <20090316153923.GA13043@owl.midgard.homeip.net>
In-Reply-To: <AA5A8761-794A-427B-9E9F-2872BD746038@identry.com>
References:  <AA5A8761-794A-427B-9E9F-2872BD746038@identry.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 16, 2009 at 11:22:13AM -0400, John Almberg wrote:
> I always thought that links to real directories were pretty much the  
> same as real directories, but I've just discovered a situation where  
> they are not and I'm wondering if I'm doing something wrong...

A *soft* link to a directory entry (be it a directory or a file or something
else) is not quite equivalent to the original entry since they are easily
distinguished and some programs do treat softlinks differently from other 
targets.

A hardlink to a file is exactly equivalent to the original (since the original
directory entry is itself a hardlink).  The system does not however allow
you to create hardlinks to directories since it is far too easy to
make Very Bad Things happen that way.


> 
> I have a Ruby on Rails application running on a FreeBSD server. All  
> Rails apps use the same directory structure, that consists of an  
> application directory, plus a number of subdirectories. One of these  
> sub directories is called 'config'.
> 
> I would like to move this config directory out of the main Rails app  
> directory, and then add a link from the app directory to the moved  
> config directory.
> 
> so:
> 
> app --> config
> 
> will become
> 
> app --> config(link) --> config
> 
> Basically, what I'm doing is:
> 
> cd ~/app     # now in directory with real 'config' dir
> mv config ~/shared/config
> ln -s ~/shared/config config
> 
> That moves the directory and creates a functional link to it (I  
> tested it), but Rails doesn't like it and refuses to run the app. The  
> permissions are correct, I believe:
> 
> [master@on:current]> ls -l
> total 34
> ... snip ...
> drwxrwxr-x  3 master  master   512 Mar 16 11:06 bin
> drwxrwxr-x  3 master  master   512 Mar 16 11:06 components
> lrwxr-xr-x  1 master  master    26 Mar 16 11:07 config -> /home/ 
> master/shared/config
> drwxr-xr-x  4 master  master   512 Mar 16 11:06 db
> etc...
> 
> 
> So, I guess a link is NOT exactly equivalent to a directory. At least  
> not the way I am doing it.
> 
> I'm guessing I'm making a real newbie mistake, so if anyone can set  
> me straight, I'd appreciate it.
> 
> Thank: John
>   

-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013@student.uu.se



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090316153923.GA13043>