Linux下如何查看一个文件是否拥有软链接或硬链接文件?

回复 收藏
问题1:我创建了一个硬链接文件,但是我不知道放在那里了,请问怎么办?
思路:
   Ø   查找文件可以利用find命令。
   Ø   硬链接的特性,不会跨文件系统,所以源文件在哪个文件系统中,就在那里找
   Ø   硬链接文件和源文件具有相同的inode号,可以利用find的-inum参数和-samefile参数来查找。
   Ø   -inum参数表示按照inode号去查找,首先要查看文件的inode号
   Ø   -samefile参数表示查找和某个文件相同的inode的文件,不用查看文件的inode号
[root@beyond beyond]# stat xiaoming.txt  //获取文件的inode号码
  File:`xiaoming.txt'
  Size:55              Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 148677      Links: 2
Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)
Access: 2016-04-17 15:32:13.861206307 +0800
Modify: 2016-04-17 14:20:13.246213893 +0800
Change: 2016-04-17 16:04:17.023206128 +0800
[root@beyond beyond]# find / -inum 1486772>/dev/null   //根据Inode号码查找,把错误提示丢弃
/usr/local/xiaoming
/data/bingnew/xaoming.txt
[root@beyond beyond]#

另外:ls -l 结果的第三段表示该文件是否有硬链接
问题2:我对文件n创建了一个软连接文件,但是我不知道放在哪里了,也不知道叫什么名字,请问怎么办?
思路:
  Ø   软链接可以跨文件系统,并且inode、属性都和源文件的不同没有规律可以寻
  Ø   当我们使用ls –l命令查看链接文件的时候,它都会以:filename -> link filename方式显示。
  Ø   我们寻找当前系统内所有的链接文件,然后过滤我们要找的源文件名n,就能查看有哪些文件指向了源文件。
[root@beyond beyond]# find -type l -exec ls -l {} \;         
lrwxrwxrwx 1 root root 1 Apr 17 16:21 ./xiaohong-> 1
lrwxrwxrwx 1 root root 10 Apr 17 16:16./xiaohong.txt -> xiaoming.txt
[root@beyond beyond]#                  //找到文件后,长格式显示,然后过滤源文件名
[root@beyond beyond]# find -type l -exec ls -l {}\;| grep 'xiaoming.txt'
lrwxrwxrwx 1 root root 10 Apr 17 16:16./xiaohong.txt -> xiaoming.txt

2016-04-17 16:49 举报
已邀请:
0

150411100

赞同来自:

学习了!
0

ilinux

赞同来自:

学习了!
0

mqwh

赞同来自:

以前还没想过这么去找,还在想怎么找到类似的软连接,谢谢楼主分享{:4_91:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: