返回顶部
首页 > 资讯 > 操作系统 >怎么在Linux上识别同样内容的文件
  • 559
分享到

怎么在Linux上识别同样内容的文件

2023-06-16 07:06:42 559人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关怎么在linux上识别同样内容的文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用 diff 命令比较文件可能比较两个文件最简单的方法是使用 diff 命令。输出会显示你文件

这篇文章将为大家详细讲解有关怎么在linux上识别同样内容的文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

用 diff 命令比较文件

可能比较两个文件最简单的方法是使用 diff 命令。输出会显示你文件的不同之处。<> 符号代表在当参数传过来的***个(<)或第二个(>)文件中是否有额外的文字行。在这个例子中,在 backup.html 中有额外的文字行。

$ diff index.html backup.html2438a2439,2441> <pre>> That's all there is to report.> </pre>

如果 diff 没有输出那代表两个文件相同。

$ diff home.html index.html$

diff 的***缺点是它一次只能比较两个文件并且你必须指定用来比较的文件,这篇帖子中的一些命令可以为你找到多个重复文件。

使用校验和

cksum(checksum) 命令计算文件的校验和。校验和是一种将文字内容转化成一个长数字(例如2819078353 228029)的数学简化。虽然校验和并不是完全独有的,但是文件内容不同校验和却相同的概率微乎其微。

$ cksum *.html2819078353 228029 backup.html4073570409 227985 home.html4073570409 227985 index.html

在上述示例中,你可以看到产生同样校验和的第二个和第三个文件是如何可以被默认为相同的。

使用 find 命令

虽然 find 命令并没有寻找重复文件的选项,它依然可以被用来通过名字或类型寻找文件并运行 cksum 命令。例如:

$ find . -name "*.html" -exec cksum {} \;4073570409 227985 ./home.html2819078353 228029 ./backup.html4073570409 227985 ./index.html

使用 fslint 命令

fslint 命令可以被特地用来寻找重复文件。注意我们给了它一个起始位置。如果它需要遍历相当多的文件,这就需要花点时间来完成。注意它是如何列出重复文件并寻找其它问题的,比如空目录和坏 ID。

$ fslint .-----------------------------------file name lint-------------------------------Invalid utf8 names-----------------------------------file case lint----------------------------------DUPlicate files   <==home.htmlindex.html-----------------------------------Dangling links--------------------redundant characters in links------------------------------------suspect links--------------------------------Empty Directories./.gnupg----------------------------------Temporary Files----------------------duplicate/conflicting Names------------------------------------------Bad ids-------------------------Non Stripped executables

你可能需要在你的系统上安装 fslint。你可能也需要将它加入你的命令搜索路径:

$ export PATH=$PATH:/usr/share/fslint/fslint

使用 rdfind 命令

rdfind 命令也会寻找重复(相同内容的)文件。它的名字意即“重复数据搜寻”,并且它能够基于文件日期判断哪个文件是原件&mdash;&mdash;这在你选择删除副本时很有用因为它会移除较新的文件。

$ rdfind ~Now scanning "/home/shark", found 12 files.Now have 12 files in total.Removed 1 files due to nonunique device and inode.Total size is 699498 bytes or 683 KiBRemoved 9 files due to unique sizes from list.2 files left.Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.Now eliminating candidates based on sha1 checksum:removed 0 files from list.2 files left.It seems like you have 2 files that are not uniqueTotally, 223 KiB can be reduced.Now making results file results.txt

你可以在 dryrun 模式中运行这个命令 (换句话说,仅仅汇报可能会另外被做出的改动)。

$ rdfind -dryrun true ~(DRYRUN MODE) Now scanning "/home/shark", found 12 files.(DRYRUN MODE) Now have 12 files in total.(DRYRUN MODE) Removed 1 files due to nonunique device and inode.(DRYRUN MODE) Total size is 699352 bytes or 683 KiBRemoved 9 files due to unique sizes from list.2 files left.(DRYRUN MODE) Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.(DRYRUN MODE) Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.(DRYRUN MODE) Now eliminating candidates based on sha1 checksum:removed 0 files from list.2 files left.(DRYRUN MODE) It seems like you have 2 files that are not unique(DRYRUN MODE) Totally, 223 KiB can be reduced.(DRYRUN MODE) Now making results file results.txt

rdfind 命令同样提供了类似忽略空文档(-ignoreempty)和跟踪符号链接(-followsymlinks)的功能。查看 man 页面获取解释。

-ignoreempty       ignore empty files-minsize        ignore files smaller than speficied size-followsymlinks     follow symbolic links-removeidentinode   remove files referring to identical inode-checksum       identify checksum type to be used-deterministic      determiness how to sort files-makesymlinks       turn duplicate files into symbolic links-makehardlinks      replace duplicate files with hard links-makeresultsfile    create a results file in the current directory-outputname     provide name for results file-deleteduplicates   delete/unlink duplicate files-sleep          set sleep time between reading files (milliseconds)-n, -dryrun     display what would have been done, but don't do it

注意 rdfind 命令提供了 -deleteduplicates true 的设置选项以删除副本。希望这个命令语法上的小问题不会惹恼你。;-)

$ rdfind -deleteduplicates true ....Deleted 1 files.    <==

你将可能需要在你的系统上安装 rdfind 命令。试验它以熟悉如何使用它可能是一个好主意。

使用 fdupes 命令

fdupes 命令同样使得识别重复文件变得简单。它同时提供了大量有用的选项&mdash;&mdash;例如用来迭代的 -r。在这个例子中,它像这样将重复文件分组到一起:

$ fdupes ~/home/shs/UPGRADE/home/shs/mytwin /home/shs/lp.txt/home/shs/lp.man /home/shs/penguin.png/home/shs/penguin0.png/home/shs/hideme.png

这是使用迭代的一个例子,注意许多重复文件是重要的(用户的 .bashrc.profile 文件)并且不应被删除。

# fdupes -r /home/home/shark/home.html/home/shark/index.html /home/dory/.bashrc/home/eel/.bashrc /home/nemo/.profile/home/dory/.profile/home/shark/.profile /home/nemo/tryme/home/shs/tryme /home/shs/arrow.png/home/shs/PNGs/arrow.png /home/shs/11/files_11.zip/home/shs/ERIC/file_11.zip /home/shs/penguin0.jpg/home/shs/PNGs/penguin.jpg/home/shs/PNGs/penguin0.jpg /home/shs/Sandra_rotated.png/home/shs/PNGs/Sandra_rotated.png

fdupe 命令的许多选项列如下。使用 fdupes -h 命令或者阅读 man 页面获取详情。

-r --recurse     recurse-R --recurse:    recurse through specified directories-s --symlinks    follow symlinked directories-H --hardlinks   treat hard links as duplicates-n --noempty     ignore empty files-f --omitfirst   omit the first file in each set of matches-A --nohidden    ignore hidden files-1 --sameline    list matches on a single line-S --size        show size of duplicate files-m --summarize   summarize duplicate files infORMation-q --quiet       hide progress indicator-d --delete      prompt user for files to preserve-N --noprompt    when used with --delete, preserve the first file in set-I --immediate   delete duplicates as they are encountered-p --permissions don't soncider files with different owner/group or                 permission bits as duplicates-o --order=Word  order files according to specification-i --reverse     reverse order while sorting-v --version     display fdupes version-h --help        displays help

fdupes 命令是另一个你可能需要安装并使用一段时间才能熟悉其众多选项的命令。

关于“怎么在Linux上识别同样内容的文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么在Linux上识别同样内容的文件

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

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

猜你喜欢
  • 怎么在Linux上识别同样内容的文件
    这篇文章将为大家详细讲解有关怎么在Linux上识别同样内容的文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用 diff 命令比较文件可能比较两个文件最简单的方法是使用 diff 命令。输出会显示你文件...
    99+
    2023-06-16
  • 在Linux上识别同样内容的文件详解
    前言 有时文件副本相当于对硬盘空间的巨大浪费,并会在你想要更新文件时造成困扰。以下是用来识别这些文件的六个命令。 在最近的帖子中,我们看了 如何识别并定位硬链接的文件 (即,指向同一硬盘内容并共享 inode)。在本文中...
    99+
    2022-06-04
    linux 查看文件内容 linux查看文件内容命令 linux查看文件
  • 在linux中怎么查找文件内容
    这篇文章主要介绍“在linux中怎么查找文件内容”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“在linux中怎么查找文件内容”文章能帮助大家解决问题。在linux中,可以利用grep命令来查找文件内...
    99+
    2023-06-29
  • 作用识别Linux上的文件分身
    作用识别Linux上的文件分身,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux 系统上的一些文件可能出现在多个位置。按照本文指示查找并识别这些“同卵双胞...
    99+
    2023-06-16
  • Linux怎么清空文件内容
    这篇文章主要讲解了“Linux怎么清空文件内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么清空文件内容”吧!1、使用重定向的方法 [root@centos7&nbs...
    99+
    2023-06-28
  • linux怎么显示文件内容
    在Linux系统中,可以使用以下命令来显示文件内容:1. `cat`命令:用于显示文件的内容,一般用于较小的文件。示例:`cat 文...
    99+
    2023-08-25
    linux
  • linux怎么在文件中查找指定内容
    在Linux中,可以使用以下命令来在文件中查找指定内容:1. `grep`命令:用于在文件中搜索指定的字符串或正则表达式。```gr...
    99+
    2023-09-25
    linux
  • Linux文件同步rsync是怎样的
    这篇文章将为大家详细讲解有关Linux文件同步rsync是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,...
    99+
    2023-06-28
  • Linux系统下怎样批量替换文件内容
    Linux系统下怎样批量替换文件内容,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个pom...
    99+
    2023-06-17
  • linux中怎么清空文件内容
    本篇文章为大家展示了linux中怎么清空文件内容,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。$ : > filename  $ &...
    99+
    2023-06-13
  • Linux 中怎么查看文件内容
    这篇文章将为大家详细讲解有关Linux 中怎么查看文件内容,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。catcat 命令将文本文件的全部内容发送到终端窗口以供查看。实际上,如果你输入 &n...
    99+
    2023-06-15
  • Linux下怎么查看文件内容
    这篇文章主要为大家展示了“Linux下怎么查看文件内容”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下怎么查看文件内容”这篇文章吧。Linux下查看文件内容有多种方法,可以使用:cat...
    99+
    2023-06-27
  • 怎么在Linux中查看文件指定行数的内容
    怎么在Linux中查看文件指定行数的内容?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。tail -n +/-数字 文件名head -n 数字 文件名sed -n "开...
    99+
    2023-06-12
  • 怎么在Linux中将文本内容追加到文件末尾
    这篇文章给大家分享的是有关怎么在Linux中将文本内容追加到文件末尾的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用>>运算符附加文本运算符会将输出重定向到文件,如果文件不存在,则创建该文件,但如果...
    99+
    2023-06-16
  • linux怎么循环读取文件内容
    在Linux中,可以使用while循环结合read命令来循环读取文件内容。具体操作如下:```shell#!/bin/bash# 文...
    99+
    2023-09-21
    linux
  • Linux怎么批量替换文件内容
    这篇“Linux怎么批量替换文件内容”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux怎么批量替换文件内容”文章吧。方...
    99+
    2023-06-28
  • linux怎么清空指定文件内容
    要清空指定文件的内容,可以使用以下几种方法:1. 使用重定向符号>或>>:可以通过将空内容重定向到文件来清空文件内容。使用>符号会覆...
    99+
    2023-10-20
    linux
  • linux怎么清空一个文件内容
    要清空一个文件的内容,在Linux中可以使用以下方法之一:1. 使用 "> " 重定向操作符:将空字符串或者一个空文件重定向到目标文...
    99+
    2023-08-26
    linux
  • linux怎么替换一行文件内容
    在 Linux 中,可以使用 `sed` 命令来替换一行文件内容。`sed` 是一个流编辑器,可以用于处理以文本形式存储的文件。 要...
    99+
    2023-10-26
    linux
  • linux怎么查看文件内容过滤
    在Linux中,可以使用以下命令来查看文件内容并进行过滤: cat命令:用于查看文件内容。例如,cat filename将打印出...
    99+
    2024-02-29
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作