我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在Linux下怎么寻找相同的文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在Linux下怎么寻找相同的文件

小编给大家分享一下在Linux下怎么寻找相同的文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!


inode 是一个数据结构,记录了文件所有信息,除了文件名和文件内容。如果两个或多个文件具有相同的 inode 值,即使它们的文件名不一样,位置不一样,它们的内容、所有者、权限其实都是一样的,我们可以将其视有相同文件。

这类型的文件其实就是所谓的「硬链接」。硬链接具有相同的 inode 值,但文件名不一样。而软链接其实就是快捷方式,它指向目标文件,但有着自己的 inode 值。

$ ls -l my* -rw-r--r-- 4 liangxu liangxu   228 Apr 12 19:37 myfile lrwxrwxrwx 1 liangxu liangxu     6 Apr 15 11:18 myref -> myfile -rw-r--r-- 4 liangxu liangxu   228 Apr 12 19:37 mytwin

我们无法直接知道同一目录下有哪些文件是有相同的 inode 值,但要识别起来也不难。其实我们只要使用 ls -i 命令,再以 inode 值进行排序,就可以直接找到这些文件。

$ ls -i | sort -n | more  ...  788000 myfile    <==  788000 mytwin    <==  801865 Name_Labels.pdf  786692 never leave home angry  920242 NFCU_Docs  800247 nmap-notes

在这个结果的第一列里,就是对应的 inode 值。所以从这个结果里我们一眼就可以看出来,哪些文件具有相同 inode 值。

如果你只是想找到一个文件的对应硬链接文件,我们可以使用 find 命令,再加个 -samefile 选项即可快速找到。

$ find . -samefile myfile ./myfile ./save/mycopy ./mytwin

这些文件都是有相同的 inode 值,不信的话可以再使用 ls 命令来查看更多信息:

$ find . -samefile myfile -ls  788000    4 -rw-r--r--   4 liangxu    liangxu      228 Apr 12 19:37 ./myfile  788000    4 -rw-r--r--   4 liangxu    liangxu      228 Apr 12 19:37 ./save/mycopy  788000    4 -rw-r--r--   4 liangxu    liangxu      228 Apr 12 19:37 ./mytwin

我们可以看到,除了文件名之外,这几个文件名的信息完全一样。细心的朋友可能会注意到,在第2列(硬连接数)是4,而实际上我们找出来的文件只有3个,这说明还有一个文件与他们共享 inode 值,只是我们通过这条命令没有找出来而已。

作为一个懒人,每次敲命令多麻烦,直接上脚本找出目录下的相同文件!

#!/bin/bash  # seaches for files sharing inodes  prev=""  # list files by inode ls -i | sort -n > /tmp/$0  # search through file for duplicate inode #s while read line do     inode=`echo $line | awk '{print $1}'`     if [ "$inode" == "$prev" ]; then         grep $inode /tmp/$0     fi     prev=$inode done < /tmp/$0  # clean up rm /tmp/$0

运行结果:

$ ./findHardLinks  788000 myfile  788000 mytwin

当然了,你还可以使用 find 命令,根据 inode 值,找到系统里所有相同文件。

$ find / -inum 788000 -ls 2> /dev/null  788000   4 -rw-r--r--   4 liangxu   liangxu    228 Apr 12 19:37 /tmp/mycopy  788000   4 -rw-r--r--   4 liangxu   liangxu    228 Apr 12 19:37 /home/liangxu/myfile  788000   4 -rw-r--r--   4 liangxu   liangxu    228 Apr 12 19:37 /home/liangxu/save/mycopy  788000   4 -rw-r--r--   4 liangxu   liangxu    228 Apr 12 19:37 /home/liangxu/mytwin

在这条命令里,我们将错误提示重定向到 /dev/null 这个特殊文件里,这样在搜索一些我们没有权限访问的路径时,不会满屏的 permission denied 。

以上是“在Linux下怎么寻找相同的文件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在Linux下怎么寻找相同的文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在Linux下怎么寻找相同的文件

小编给大家分享一下在Linux下怎么寻找相同的文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!inode 是一个数据结构,记录了文件所有信息,除了文件名和文件内
2023-06-05

Linux下怎么寻找相同文件

这篇文章主要介绍了Linux下怎么寻找相同文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。随着电脑的使用,系统里将产生很多垃圾,比较典型的就是同一份文件被保存到了不同的位置
2023-06-15

Linux下怎么寻找相同的文件

今天小编给大家分享一下Linux下怎么寻找相同的文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。所以如果你的电脑空间告急的
2023-06-28

Linux下如何寻找相同文件的方法

随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。 所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通
2022-06-03

使用PHP怎么在两个文件中找出相同的记录

使用PHP怎么在两个文件中找出相同的记录?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。引言给定a,b两个文件, 分别有x,y行数据, 其中(x, y均大于10亿
2023-06-15

怎么在Linux下快速找到被删除的文件

小编给大家分享一下怎么在Linux下快速找到被删除的文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!日常运维过程中,我们经常需要处理磁盘空间问题,当接到告警后,
2023-06-07

Python中怎么删除目录下的相同文件

本篇文章给大家分享的是有关Python中怎么删除目录下的相同文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。# -*- coding: cp936 -*- import m
2023-06-17

java怎么找出两个文本文件中有相同字段的行

这篇文章主要介绍“java怎么找出两个文本文件中有相同字段的行”,在日常操作中,相信很多人在java怎么找出两个文本文件中有相同字段的行问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么找出两个文本文
2023-06-03

在Linux下怎么使用rsync对比和同步文件

本篇内容主要讲解“在Linux下怎么使用rsync对比和同步文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux下怎么使用rsync对比和同步文件”吧!排除文件和目录列表有时候,当我们
2023-06-13

linux下怎么查找某个文件的位置

本篇内容主要讲解“linux下怎么查找某个文件的位置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下怎么查找某个文件的位置”吧!

2023-06-06

linux如何在多个文件中替换掉相同的文本

这篇文章主要介绍了linux如何在多个文件中替换掉相同的文本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在多个文件中替换掉相同的文本应用程序:find(译注:Linux下的
2023-06-27

在linux中怎么查找文件内容

这篇文章主要介绍“在linux中怎么查找文件内容”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“在linux中怎么查找文件内容”文章能帮助大家解决问题。在linux中,可以利用grep命令来查找文件内
2023-06-29

怎么在Linux系统中查找文件

本篇文章为大家展示了怎么在Linux系统中查找文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。linux查找文件1.1 find命令Linux find 命令是所有 Linux 命令中最有用的一个
2023-06-16

Linux如何使用diff命令比较文件找出文件之间相同的部分

本篇内容主要讲解“Linux如何使用diff命令比较文件找出文件之间相同的部分”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux如何使用diff命令比较文件找出文件之间相同的部分”吧!  
2023-06-13

在Linux系统下怎么查找可移植可执行文件

这篇文章主要介绍“在Linux系统下怎么查找可移植可执行文件”,在日常操作中,相信很多人在在Linux系统下怎么查找可移植可执行文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Linux系统下怎么查找可移
2023-06-13

如何在Linux下找到被误删除的文件

这篇文章主要介绍“如何在Linux下找到被误删除的文件”,在日常操作中,相信很多人在如何在Linux下找到被误删除的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在Linux下找到被误删除的文件”的疑
2023-06-15

怎么在Linux下解压Zip文件

这篇文章主要介绍怎么在Linux下解压Zip文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Zip 是一种创建压缩存档文件的最普通、最流行的方法。它也是一种古老的文件归档文件格式,这种格式创建于 1989 年。由于
2023-06-16

怎么在Linux中切换相同程序的不同版本

这篇文章主要为大家展示了“怎么在Linux中切换相同程序的不同版本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么在Linux中切换相同程序的不同版本”这篇文章吧。使用 update-alte
2023-06-16

编程热搜

目录