Linux查找link文件,Linux下查找一个文件的所有软硬链接

问题1:我创建了一个硬链接文件,但是我不知道放在那里了,请问怎么办?

思路:

查找文件可以利用find命令。

硬链接的特性,不会跨文件系统,所以源文件在哪个文件系统中,就在那里找

硬链接文件和源文件具有相同的inode号,可以利用find的-inum参数和-samefile参数来查找。

-inum参数表示按照inode号去查找,首先要查看文件的inode号

-samefile参数表示查找和某个文件相同的inode的文件,不用查看文件的inode号

[root@]# stat test.txt //获取文件的inode号码

File:`test.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@]# find / -inum 1486772 >/dev/null //根据Inode号码查找,把错误提示丢弃

/usr/local/111test

/data/oldboy/linktest.txt

问题2:我对文件n创建了一个软连接文件,但是我不知道放在哪里了,也不知道叫什么名字,请问怎么办?

思路:

软链接可以跨文件系统,并且inode、属性都和源文件的不同没有规律可以寻

当我们使用ls –l命令查看链接文件的时候,它都会以:filename -> link filename方式显示。

我们寻找当前系统内所有的链接文件(需要在根下面),然后过滤我们要找的源文件名n,就能查看有哪些文件指向了源文件。

注意这里的示例为了节省速度直接在当前文件夹内进行了测试

[root@]# find -type l -exec ls -l {} \;

lrwxrwxrwx 1 root root 1 Apr 17 16:21 ./111test.txt-> 1

lrwxrwxrwx 1 root root 10 Apr 17 16:16./linktest.txt -> test.txt

//找到文件后,长格式显示,然后过滤源文件名

[root@]# find -type l -exec ls -l {}\;| grep 'linktest.txt'

lrwxrwxrwx 1 root root 10 Apr 17 16:16 ./linktest.txt -> test.txt

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值