[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug in [ -f file ] test

From: László Házy
Subject: Re: bug in [ -f file ] test
Date: Tue, 26 Jul 2016 17:07:40 -0400

Hmm, interesting. I can reproduce your results. Thanks.
However, note the following:

[user1]$ chmod g+rx /home/user1
[user1]$ touch file; ls -l file
-rw-r--r--. 1 user1 users    0 Jul 26 15:24 file

[user1]$ su user2 -c "ln -s /home/user1/file /var/tmp/link"
[user1]$ ls -l /var/tmp/link
lrwxrwxrwx. 1 user2 users 17 Jul 26 15:26 /var/tmp/link -> /home/user1/file

[user1]$ [[ -f /var/tmp/link ]]; echo $?

[user1]$ su user2
[user2]$ [[ -f /var/tmp/link ]]; echo $?

Something does not add up.
From experimenting, it appears that only the user who created the symlink will get true for the file test.

Thank you.

On Tue, 2016-07-26 at 15:06 -0400, Grisha Levit wrote:
Are you sure "file" is a link to an actual file, not, say, a directory?

$ rpm -q bash; echo $BASH_VERSION; cat /etc/redhat-release
Fedora release 23 (Twenty Three)

$ touch file; ln -s file link; [[ -f link ]]; echo $?

On Tue, Jul 26, 2016 at 12:58 PM, László Házy <address@hidden> wrote:
I am running bash 4.3.42-3 on Fedore Core 23.

I noticed that the [ -f file ] test returns false if "file" is a symlink. Given the intended behavior (from a long time ago), this is wrong as the symlinks are supposed to be followed. It certainly brakes functionality in certain existing software.

Has the default behavior been changed somewhere along the time line and I am not aware of it?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]