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

Re: all softlinks to a given file [SOLVED]



On Fri, 28 Sep 2007 16:33:23 -0400
"Miner, Jonathan W (CSC) (US SSA)" <jonathan w miner baesystems com>
wrote:

> 
> 
> 
> -----Original Message-----
> From:	fedora-list-bounces redhat com on behalf of Zoltan Szabo
> Sent:	Fri 09/28/2007 04:08 PM
> To:	For users of Fedora
> Cc:	
> Subject:	all softlinks to a given file
> 
> Do you know an easy (fast) way to find all the softlinks to a given
> file, using Fedora?
> 
> Example: in case of "S1 -> F, ...., SN -> F" the task is to find
> S1, ..., SN given file F.
> 
> Any idea is appreciated,
> ----------------------------
> 
> Tough question... since links are one way...  Here are some
> thoughts.  Assuming that you're only looking at one filesystem, try
> to look at the inode numbers. Here is the initial directory listing:
> 
> % ls -li 
> 3815190 -rw-r--r-- 1 jminer iis  0 Sep 28 16:21 F
> 3815193 lrwxrwxrwx 1 jminer iis  1 Sep 28 16:22 S1 -> F
> 3815215 lrwxrwxrwx 1 jminer iis 11 Sep 28 16:23 S2 -> ../jminer/F
> 
> The first number is the inode, and the file and each link has a
> distinct inode number. Modify the args to `ls` and you can derefernce
> the symbolic link:
> 
> % ls -Lli 
> 3815190 -rw-r--r-- 1 jminer iis 0 Sep 28 16:21 F
> 3815190 -rw-r--r-- 1 jminer iis 0 Sep 28 16:21 S1
> 3815190 -rw-r--r-- 1 jminer iis 0 Sep 28 16:21 S2
> 
> So you would have to traverse your filesystem looking for links (S#)
> that derefernce to the same inode as the known file (F). You can do
> this with `find`
> 
> % find . -type l -exec ls -Lli {} \; | awk '$1 == 3815190 {print $0}'
> 3815190 -rw-r--r-- 1 jminer iis 0 Sep 28 16:21 ./S1
> 3815190 -rw-r--r-- 1 jminer iis 0 Sep 28 16:21 ./S2
> 

Thank you for both solutions:
1)
find . -lname F

2)
ls -Lli % => inode number: 3815190
find . -type l -exec ls -Lli {} \; | awk '$1 == 3815190 {print $0}'

In case of "SN -> .... -> S2 -> S1 -> F <- SB1":
1): returns "S1" and "SB1" (first-level solutions),
2): returns "SN",...,"S2","S1" and "SB1" (all-level solutions).

For me, 1) is enough, but it was instructive. Thanks again,

Z.


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