返回顶部
首页 > 资讯 > 操作系统 >Linux下如何寻找相同文件的方法
  • 815
分享到

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

Linux寻找相同文件Linux相同文件查找 2022-06-03 14:06:36 815人浏览 泡泡鱼
摘要

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

随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。

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

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下如何寻找相同文件的方法的文章就介绍到这了,更多相关Linux 寻找相同文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Linux下如何寻找相同文件的方法

本文链接: https://lsjlt.com/news/11474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux下如何寻找相同文件的方法
    随着电脑的使用,系统里将产生很多垃圾,最典型的就是同一份文件被保存到了不同的位置,这样导致的结果就是磁盘空间被大量占用,系统运行越来越慢。 所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 L...
    99+
    2022-06-03
    Linux 寻找相同文件 Linux 相同文件查找
  • Linux下怎么寻找相同文件
    这篇文章主要介绍了Linux下怎么寻找相同文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。随着电脑的使用,系统里将产生很多垃圾,比较典型的就是同一份文件被保存到了不同的位置...
    99+
    2023-06-15
  • Linux下怎么寻找相同的文件
    今天小编给大家分享一下Linux下怎么寻找相同的文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。所以如果你的电脑空间告急的...
    99+
    2023-06-28
  • 在Linux下怎么寻找相同的文件
    小编给大家分享一下在Linux下怎么寻找相同的文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!inode 是一个数据结构,记录了文件所有信息,除了文件名和文件内...
    99+
    2023-06-05
  • Linux下误删messages文件的找回方法
    如果有进程正在使用的文件,如果被误删了,可以找回。如果没有进程在使用,就无法找回被误删的文件了。 假如/var/log/messages文件被误删了: 1.查询正在使用该文件的进程。 [root@www]# lsof...
    99+
    2022-06-04
    linux误删messages文件找回 linux下误删messages文件的找回方法
  • Linux如何使用diff命令比较文件找出文件之间相同的部分
    本篇内容主要讲解“Linux如何使用diff命令比较文件找出文件之间相同的部分”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux如何使用diff命令比较文件找出文件之间相同的部分”吧!  ...
    99+
    2023-06-13
  • linux如何寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
    ...
    99+
    2024-04-02
  • python寻找含有关键字文件和删除文件夹的方法
    这篇文章主要介绍“python寻找含有关键字文件和删除文件夹的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python寻找含有关键字文件和删除文件夹的方法”文章能帮助大家解决问题。寻找含有关键...
    99+
    2023-06-29
  • Linux下如何查找可执行文件
    本篇文章为大家展示了Linux下如何查找可执行文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。windows下,可以根据文件的后缀名进行判断该文件是否是可执行文件,可是Linux系统怎样判断文件是...
    99+
    2023-06-28
  • Linux下如何查找文件或目录
    Linux使用find命令、locate命令、grep命令、whereis命令查找文件或目录。Linux是一种强大的操作系统,它提供了许多功能丰富的工具和命令,用于文件和目录的查找。无论是在个人使用还是在服务器管理中,查找文件或目...
    99+
    2023-07-31
  • 如何用Python寻找重复文件并删除的脚本写法
    这期内容当中小编将会给大家带来有关如何用Python寻找重复文件并删除的脚本写法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录...
    99+
    2023-06-28
  • java判断文件是否相同的方法
    java判断文件是否相同的方法:计算MD5或SHA-1然后对比判断 // 计算文件的 MD5 值 根据MD5值 判断文件是否是同一个文件 public static String getFileMD5(File file) { ...
    99+
    2016-07-17
    java 文件
  • linux如何在多个文件中替换掉相同的文本
    这篇文章主要介绍了linux如何在多个文件中替换掉相同的文本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在多个文件中替换掉相同的文本应用程序:find(译注:Linux下的...
    99+
    2023-06-27
  • 在 Linux 中查找文件的方法
    使用简单的命令在 linux 下基于类型、内容等快速查找文件。 如果你是 Windows 或 OSX 的非资深用户,那么可能使用 GUI 来查找文件。你也可能发现界面受限,令人沮丧,或者两者兼而有之,并学会了组织文件并记...
    99+
    2022-06-04
    linux 中查找文件
  • 如何在Linux下找到被误删除的文件
    这篇文章主要介绍“如何在Linux下找到被误删除的文件”,在日常操作中,相信很多人在如何在Linux下找到被误删除的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在Linux下找到被误删除的文件”的疑...
    99+
    2023-06-15
  • Linux如何查找文件
    这篇文章主要介绍“Linux如何查找文件”,在日常操作中,相信很多人在Linux如何查找文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux如何查找文件”的疑惑有所帮...
    99+
    2023-02-15
    linux
  • Linux 系统的下文件查找
    Linux 系统下文件查找1、which(1)作用:用于查找并显示给定命令的绝对路径(2)语法:which(选项)(参数)(3)案例:[root@localhost ~]# which cd &n...
    99+
    2024-04-02
  • 如何寻找二叉树的下一个节点
    如何寻找二叉树的下一个节点,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言已知一个包含父节点引...
    99+
    2024-04-02
  • Linux下如何使用grep查找文件内容
    这篇文章将为大家详细讲解有关Linux下如何使用grep查找文件内容,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。grep是Linux命令行下常用于查找过滤文本文件内容的命令。最简单的用法是:grep a...
    99+
    2023-06-28
  • Linux查找文件的方法是什么
    Linux查找文件的方法:1、使用find命令;2、使用locate命令;3、使用grep命令;使用whereis命令。在Linux操作系统中,我们经常需要查找特定的文件或目录。无论是用于定位丢失的文件,或者是用于查找特定类型的文...
    99+
    2023-07-31
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作