On 08/24/2015 02:19 PM, Cameron Simpson wrote:
On 24Aug2015 13:55, Paolo Galtieri <pgaltieri@xxxxxxxxx> wrote:
I've tried this on 2 different systems, and on both systems ln -s
fails in the same way.
Here's the steps
mkdir Test
cd Test
afile
cd ..
ln -s Test/afile Test/afile2
ls -l Test
This is the output:
/bin/ls: cannot access Test/afile2: No such file or directory
total 0
-rw-rw-r--. 1 pgaltieri pgaltieri 0 Aug 24 13:46 afile
l?????????? ? ? ? ? ? afile2
[...]
Firstly, run "/bin/ls", not "ls". Many system ship with an alias
called "ls" with presupplied various options, which is misleading. IMO
this is a terrible idea - the alias should at least use another name.
(I have ones called "l" and "L" for these conveniences, myself.)
To your problem:
Symlinks are strings resolved with respect to the directory in which
the symlink exists.
So the example above "Test/afile" => "Test/afile2" makes a symlink
_in_ the directory "Test" named "afile2" pointing at "Test/afile".
Therefore it tries to access the path "Test/Test/afile", which fails
as one might expect.
When making a symbolic link it needs to either be (a) an absolute path
or (b) relative WRT to the directory hodling the link. For the latter,
the reliable way is to cd to the directory and make in from inside.
That way command line filename completion prodcues working results.
Cheers,
Cameron Simpson <cs@xxxxxxxxxx>
Unix is user-friendly. It's just picky about who its friends are.
Cameron,
thank you for your reply. As it turns out the ln command
ln -s Test/afile Test/afile1
does create the link. The problem as you noted is the ls command. If I do
/bin/ls -l Test
I get
total 0
-rw-rw-r--. 1 pgaltieri pgaltieri 0 Aug 25 08:20 afile
lrwxrwxrwx. 1 pgaltieri pgaltieri 10 Aug 25 08:20 afile2 -> Test/afile
But doing
ls -l Test
I get
/bin/ls: cannot access Test/afile2: No such file or directory
total 0
-rw-rw-r--. 1 pgaltieri pgaltieri 0 Aug 25 08:20 afile
l?????????? ? ? ? ? ? afile2
I'll probably file a bug against freeradius indicating the documentation
is wrong :-)
The correct way to do the link is
mkdir Test2
cd Test2
ln -s ../Test/file file
cd ..
/bin/ls -l Test2
total 0
lrwxrwxrwx. 1 pgaltieri pgaltieri 10 Aug 25 08:29 afile -> Test/afile
lrwxrwxrwx. 1 pgaltieri pgaltieri 13 Aug 25 08:29 afile2 -> ../Test/afile
ls -l Test2
total 0
-rw-rw-r--. 1 pgaltieri pgaltieri 0 Aug 25 08:20 afile
which is what I expect to see. The ls command is an alias of /bin/ls -LCFb.
Again thank you for your help.
Paolo
--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org