在Linux下如何寻找相同的文件

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
导读随着电脑的使用,系统里将产生很多垃圾,比较典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。

所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。
在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 。

原文来自:https://www.linuxprobe.com/linux-inode-same.html

将不同文件夹下相同文件名文件移动到一个文件夹下 #!/bin/bash ######函数roll_di生成随机数 function roll_die() {   # capture parameter   declare -i DIE_SIDES=$1   # check for die sides   if [ ! $DIE_SIDES -gt 0 ]; then     # default to 6     DIE_SIDE 阅读详情

相关推荐

Linux Inode:究竟有多少相同

总的来说,Linux文件系统中Inode的数量非常庞大,然而,经过测试,我们发现在实际的应用场景中,绝大部分Inode都是不同的。细心的朋友可能会注意到,在第2列(硬连接数)是4,而实际上我们找出来的文件只有3个,这说明还有一个文件与他们共享 inode 值,只是我们通过这条命令没有找出来而已。如果两个或多个文件具有相同的 inode 值,即使它们的文件名不一样,位置不一样,它们的内容、所有者、权限其实都是一样的,我们可以将其视有相同文件。下,我们可以通过识别文件的 inode 值来找出系统中的相同文件

shengyin714959的博客 315

linux查找重复文件

find . -type f|xargs md5sum 2>/dev/null|sort|uniq -d -w 33 find . -type f|xargs md5sum 2>/dev/null|grep 02a42c7a845094a8904f7b3faf686b81 uniq -d, --repeated only pr...

weixin_30593443的博客 1007

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

随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。 所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。 inode 是一个数据结构,记录了文件所有信息,除了文件名文件内容。如果两个或多个文件具有相同的 inode 值,即使它们的文件名不一样,位置不一样,它们的内容、所有者、权限其实都是一样的,我们可以将其视有相同文件。 这类型的文件其实就是所谓的「硬链接」。硬链接具有相同的 inode 值,但文件名不一样

linux查找文件重复项,Linux中如何使用命令查找重复文件

今天小编要跟大家分享的文章是关于Linux系统中如何使用命令查找重复文件。不管是Windows电脑还是Linux电脑,在使用的过程中,或多或少都会留下很多重复的文件。这些文件不仅会占用我们的磁盘,还会拖累我们的系统,所以,我们需要删除这些重复的文件。今天小编为大家介绍6种方法找到系统里的重复文件,让你快速释放硬盘空间!一起来看一看吧!1.使用diff命令比较文件在我们平常操作当中,比较两个文件的差...

weixin_39924198的博客 2730

linux相同名称文件,Linux查找多个类似,但不同的名称和重命名文件

受试者被认为是百度侧面问题,Linux称号:寻找core.1。core.2....形式命名的文件,然后改变这些文件的名称bak。core.1。bak.core.2,......首先,你应该找到这些文件,采用find . -name "core.[0-9]" -print ,能够找到。find的用法:1.命令格式:find pathname -options [-print -exec -ok...

weixin_39687468的博客 1779

linux find查找重复文件

find是查找命令,-not -empty寻找非空文件;-type f寻找常规文件;-print0防止文件名里带空格xargs命令将之前的结果转化为参数,供后面的命令调用-0与前面的-print0配合使用,指定使用NULL而不是空格、Tab制表符、回车符为分隔符和结束符md5sum计算每个文件的MD5值sort是排序命令 uniq -w32是指寻找前32个字符相同的行,原因在于md5值一定是32位的,而后面的–all-repeated=separate是指将重复的部分放在一类,分类输出。由于我们的结果带着m

运维@小兵的博客 1736

Linux文件查找常用命令

文件搜索命令:find 一、根据文件名查找 1.1、查找精确文件 find 路径 -name 文件名 1.2、查找文件名包含某字符串的文件 find 路径 -name * 文件名 * 1.3、查找以某字符串为前缀的文件 find 路径 -name 文件名* 1.4、查找以某字符串为后缀的文件 find 路径 -name *文件名 ...

YIMT的博客 549

Linux寻找相同文件

随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。 所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。 inode 是一个数据结构,记录了文件所有信息,除了文件名文件内容。如果两个或多个文件具有相同的 inode 值,即使它们的文件名不一样,位置不一样,它们的内容、所有者、权限其实都是一样的,我们可以将其视有相同文件

coderOnline的博客 312

linux下查看文件inode,Linux下如何寻找相同文件

原标题:Linux下如何寻找相同文件? 本文经授权转载自 良许Linux(ID:liangxuxiansheng)作者: 良许如若转载请联系原公众号大家好,我是良许。随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。inode是一个数据结构,记录了文件所有信息,除了文件名文件内容。如果两个或多个文件具有相同的...

weixin_39789101的博客 654

linux查找相同文件,在Linux下如何寻找相同文件

随着电脑的使用,系统里将产生很多垃圾,比较典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。inode 是一个数据结构,记录了文件所有信息,除了文件名文件内容。如果两个或多个文件具有相同的 inode 值,即使它...

weixin_42525189的博客 847

Linux下如何寻找相同文件

大家好,我是良许。 随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。 所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。 inode 是一个数据结构,记录了文件所有信息,除了文件名文件内容。如果两个或多个文件具有相同的 inode 值,即使它们的文件名不一样,位置不一样,它们的内容、所有者、权限其实都是一样的,我们可

码到成功 3406

linux两个不同文件inode相同,Linux系统中如何寻找相同文件?

今天小编要跟大家分享的文章是关于Linux系统中如何寻找相同文件?随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。下面就来和小编一起看一看怎么办吧!如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode值来找出系统中的相同文件。inode 是...

weixin_39832829的博客 867

linux同一目录下寻找文件,Linux下如何寻找相同文件的方法

随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。inode 是一个数据结构,记录了文件所有信息,除了文件名文件内容。如果两个或多个文件具有相同的 inode...

weixin_30704909的博客 1036

linux两个不同文件inode相同,Linux下如何寻找相同文件

你们好,我是良许。node随着电脑的使用,系统里将产生不少垃圾,最典型的就是同一份文件被保存到了不一样的位置,这样致使的结果就是磁盘空间被大量占用,系统运行愈来愈慢。bash因此若是你的电脑空间告急的话,能够试着去删除这样的文件,释放一些空间。在 Linux 下,咱们能够经过识别文件的 inode 值来找出系统中的相同文件。数据结构inode 是一个数据结构,记录了文件全部信息,除了文件名文件内...

weixin_32787251的博客 870

linux查询相同数据

如何在Linux查找两个文件中,相同的(重复的数据)... ... 例如有两个文件a.txt ,b.txt ,已经知道  :a.txt 和b.txt 中有相同的ID , 如何快速的找到相同的ID呐 ? 1. 将两个文件合并成一个文件,cat a.txt > tag.txt , cat b.txt >>tag.txt . 2.执行命令:sort  tag.txt |

319

linux 寻找文件

微信设置水滴昵称,个性中带点萌 Linux文件搜索、查找、查看命令 1、最强大的搜索命令:find 查找各种文件的命令 2、在文件资料中查找文件:locate  3、搜索命令所在的目录及别名信息:which 4、搜索命令所在的目录及帮助文档路径:whereis5、在文件中搜寻字符串匹配的行并输出:grep6、分页显示一个文件或任何输出结果:more7、分页显示一个文件并且可以回头:less8、指定显示前多少行文件内容:head9、指定显示文件后多少行内容:tail10、查看一个文件:cat11、查看文件

manongxianfeng的博客 6255

Linux驱动开发之头文件寻找路径说明及头文件简介

Linux驱动开发之头文件寻找路径说明 头文件目录中总共有32个.h头文件。其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个。 1,头文件寻找路径说明 #include <linux/***.h> 在linux-x.x.x.x/include/linux下面寻找文件。 #include <asm/***.h> 在linux-x.x.x.x/arch/arm/include/asm下面寻找文件。 #include <mach/***

风吹花中花吹风的博客 3569
上一篇: 教你如何在Linux系统里统计文件夹下的文件个数
下一篇: 你需要了解的 HTTP Status Code
Listen2You
博客等级 码龄10年 202粉丝 1001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值