Linux下如何查看一個文件是否擁有軟連接或硬連接文件?

問題1:我建立了一個硬連接文件,可是我不知道放在那裏了,請問怎麼辦?node

思路:bash

  • 查找文件能夠利用find命令。ide

  • 硬連接的特性,不會跨文件系統,因此源文件在哪一個文件系統中,就在那裏找spa

  • 硬連接文件和源文件具備相同的inode號,能夠利用find-inum參數和-samefile參數來查找。it

  • -inum參數表示按照inode號去查找,首先要查看文件的inodeclass

  • -samefile參數表示查找和某個文件相同的inode的文件,不用查看文件的inodefile

[root@lixin oldboy]# stat oldboy.txt  //獲取文件的inode號碼
  File:`oldboy.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@lixin oldboy]# find / -inum 1486772>/dev/null //根據Inode號碼查找,把錯誤提示丟棄
/usr/local/xiaoming
/data/oldboy/oldboy.txt
[root@lixin oldboy]#

 

問題2:我對文件n建立了一個軟鏈接文件,可是我不知道放在哪裏了,也不知道叫什麼名字,請問怎麼辦?grep

思路:db

  • 軟連接能夠跨文件系統,而且inode、屬性都和源文件的不一樣沒有規律能夠尋di

  • 當咱們使用ls –l命令查看連接文件的時候,它都會以:filename -> link filename方式顯示。

  • 咱們尋找當前系統內全部的連接文件,而後過濾咱們要找的源文件名n,就能查看有哪些文件指向了源文件。

[root@lixin oldboy]# 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./oldgirl.txt -> oldboy.txt
[root@lixin oldboy]#    //找到文件後,長格式顯示,而後過濾源文件名
[root@lixin oldboy]# find -type l -exec ls -l {}\;| grep 'oldboy.txt'
lrwxrwxrwx 1 root root 10 Apr 17 16:16./oldgirl.txt -> oldboy.txt
相關文章
相關標籤/搜索