首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用bash脚本删除重复文件

可以通过以下步骤实现:

  1. 首先,我们需要找到重复的文件。可以使用以下命令来查找指定目录下的重复文件:
代码语言:txt
复制
find /path/to/directory -type f -exec md5sum {} + | sort | uniq -d -w 32

这个命令会在指定目录下递归地查找所有文件,并计算每个文件的MD5哈希值。然后,通过排序和去重,找到重复的文件。其中,/path/to/directory是你要查找的目录路径。

  1. 接下来,我们可以使用循环结构和条件判断来删除重复的文件。以下是一个示例脚本:
代码语言:txt
复制
#!/bin/bash

# 指定要查找的目录
directory="/path/to/directory"

# 查找重复文件
duplicates=$(find "$directory" -type f -exec md5sum {} + | sort | uniq -d -w 32)

# 遍历重复文件列表
while IFS= read -r line; do
    # 提取文件路径和文件名
    file=$(echo "$line" | awk '{print $2}')
    filename=$(basename "$file")

    # 删除重复文件
    rm "$file"

    echo "已删除文件: $filename"
done <<< "$duplicates"

将以上脚本保存为一个.sh文件,并将/path/to/directory替换为你要查找的目录路径。然后,通过运行该脚本,它将逐个删除重复的文件,并输出已删除的文件名。

这个脚本的原理是先使用find命令找到重复的文件,然后使用循环结构遍历重复文件列表,并使用rm命令删除每个重复文件。

这种方法可以帮助你快速删除重复的文件,提升存储空间利用率。

腾讯云相关产品和产品介绍链接地址:

  • 对象存储(COS):腾讯云对象存储(COS)是一种海量、安全、低成本、高可靠的云存储服务,适用于存储和处理任意类型的文件数据。详情请参考:腾讯云对象存储(COS)
  • 云服务器(CVM):腾讯云服务器(CVM)是一种弹性计算服务,提供安全可靠、弹性扩展的云端计算能力。详情请参考:腾讯云服务器(CVM)
  • 云函数(SCF):腾讯云云函数(SCF)是一种事件驱动的无服务器计算服务,帮助您在云端运行代码而无需购买和管理服务器。详情请参考:腾讯云云函数(SCF)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux删除重复文件

引言 在Linux系统处理数据时,经常会遇到删除重复文件的问题。例如,在进行图片分类任务时,希望删除训练数据中的重复图片。在Linux系统中,存在一个fdupes命令可以查找并删除重复文件。 2....Fdupes介绍 Fdupes是Adrian Lopez用C语言编写的Linux实用程序,它能够在给定的目录和子目录集中找到重复文件,Fdupes通过比较文件的MD5签名然后进行字节比较来识别重复文件。...安装fdupes 以CentOS系统为例,fdupes的安装命令为: sudo yum install -y fdupes 4. fdupes的使用 删除重复文件,并且不需要询问用户: $ fdupes...-dN [folder_name] 其中,-d参数表示保留一个文件,并删除其它重复文件,-N与-d一起使用,表示保留第一个重复文件删除其它重复文件,不需要提示用户。...使用说明: $ fdupes -h Usage: fdupes [options] DIRECTORY...

13.4K20

Linux|如何查找和删除重复文件

请注意,删除文件时要格外小心,因为不当的操作可能会导致您失去重要的数据。如果您是第一次使用某个工具,建议您先在一个测试文件夹中进行尝试,以避免误删重要文件。 1....该文件包含 rdfind 找到的所有重复文件。如果需要,您可以查看该文件并手动删除重复文件。...$ fdupes -S 要收集有关找到的文件的汇总信息,请使用 -m 选项。 $ fdupes -m 最后,如果您想删除所有重复项,请使用 -d 选项,如下所示。...$ fdupes -d Fdupes 将询问要删除哪个找到的文件。您需要输入文件编号: 绝对不推荐的解决方案是使用 -N 选项,这将导致仅保留第一个文件。...Rmlint Rmlint 是一个命令行工具,用于在 Linux 系统中查找和删除重复的和类似 lint 的文件

8610

在Linux使用Bash脚本命令

编写Bash脚本或在Linux命令行上工作时,最常见的任务之一是读写文件。 本文介绍了如何使用重定向操作符和tee命令或者在bash脚本将文本写入文件。...使用重定向操作符写入文件Bash中,输出的重定向使您可以从命令捕获输出并将其写入文件。...否则,将创建文件使用此运算符时要格外小心,因为您可能会覆盖重要文件。 >>重定向运算符会将输出追加到给定文件。 如果文件不存在,则会创建该文件。 您需要具有对该文件的写入权限。...>|运算符可让您覆盖Bash的“ noclobber”选项: set -o noclobber echo "this is a line" >| file.txt >>运算符将输出追加到文件末尾,而不是覆盖文件...使用tee命令写入文件 tee命令从标准输入读取并同时写入标准输出和一个或多个文件

2K10

使用bash编写Linux shell脚本--复合命令

除了最简单的脚本,你很少想要执行每一个命令。执行一组命令或者重复执行一组命令若干次比执行单个命令更加有助。复合命令是将命令封装在一组其他命令中。...9 unzip 命令找不到要解压的文件,返回的状态码是 9 。 非官方的 Linux 惯例使用状态码 127 并且比标准的错误代码要小。...2>& fi 在 if 命令中嵌入复杂的命令会使脚本语言难读且难以调试。你应该避免这样做。在这个例子中,如果 rm 命令运行失败,则它先显示自己的提示信息,接着显示脚本中的信息。...存在,文件显示出来,接着被删除。...命令也可以使用子外壳进行分组,子外壳将在第九章进行讨论。 report.bash :报表格式化 report.bash 是一个用来给销售数字建立报表的脚本程序。

2.3K101

Cisdem Duplicate Finder重复文件查找删除工具

提供了智能扫描算法,该程序可以找到并进行批量删除重复文件,节省硬盘空间。...Cisdem Duplicate Finder重复文件查找删除工具图片功能删除应用中的重复文件Duplicate Finder 4附带增强的扫描算法,可以快速查找照片,iPhoto,Aperture,iTunes...按关键字搜索文件。 消除重复清洁的痛苦我们只需3个步骤即可快速,安全地删除重复项。信任Cisdem Duplicate Finder自动选择重复项并保持原件不变。...重复文件可以移动到回收站,自定义文件夹或永久删除。...扫描在一个会话中拖放多个磁盘和文件夹以进行扫描 报告在不同的组中显示重复的结果,并按时间,大小等自动选择 删除永久查看和删除重复项或将其移至“废纸篓”

94030

实践|Linux 中查找和删除重复文件

在本教程中,您将学习如何使用 rdfind、fdupes 和 rmlint 命令行工具以及使用名为 DupeGuru 和 FSlint 的 GUI 工具在 Linux 中查找和删除重复文件。...它递归地扫描目录并识别具有相同内容的文件,允许您采取适当的操作,例如删除或移动重复项。 Rdfind 使用一种算法对文件进行分类,并检测哪些重复项是原始文件,并将其余的视为重复项。...如果需要,您可以查看该文件并手动删除重复文件。...它使用以下方法来确定重复文件: 比较部分 md5sum 签名 比较完整的 md5sum 签名 逐字节比较验证 就像 rdfind 一样,它有类似的选项: 递归搜索 排除空文件 显示重复文件的大小 立即删除重复项...$ fdupes -S 要收集有关找到的文件的汇总信息,请使用 -m 选项。 $ fdupes -m 最后,如果您想删除所有重复项,请使用 -d 选项,如下所示。

24820

如何在Bash Shell脚本使用`exec`命令?

exec 是一个在Bash Shell脚本使用的命令,它允许您替换当前进程的内容,包括进程ID和文件描述符。...本文将详细介绍如何在Bash Shell脚本使用exec命令,并提供一些常见的用例和示例。...下面我们将介绍几个常见的使用 exec 命令的场景:替换当前 Shell 进程在Bash Shell脚本中,您可以使用 exec 命令替换当前的Shell进程。...标准输入、输出和错误输出分别使用文件描述符0、1和2。总结exec 命令在Bash Shell脚本中的使用提供了灵活的功能。...本文介绍了在Bash Shell脚本使用 exec 命令的基本语法和用法,并提供了几个常见的使用场景和示例。使用 exec 命令可以帮助您管理进程、切换解释器、重定向输入输出等。

2.7K50

使用git删除文件

删除单个文件 如果只是删除本地的一个文件,通常是物理删除,然后git删除,再提交即可。...rm test.txt git status git rm test.txt git commit -m "remove test.txt" git push 还原那些误删的文件 另一种情况是删错了...,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本: $ git checkout -- test.txt git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除...批量删除多个文件 在项目根目录使用命令git add -A然后使用命令git commit -m "del" 再然后要使用 git push推送到远程服务器 建议每一次add之后再次使用git status...命令来查看是否已经stage了 如果你要上传删除(全部上传) git add --all

1.4K20

使用bash编写Linux shell脚本--调试和版本控制

外壳调试的特点 Bash 有几个开关和选项对于跟踪调试脚本是非常有用的。“ -n ”开关可以使你不用运行脚本就可以检查脚本语法的正确性。通常在开发期间使用这个开关来检查脚本的语法。...从你的目录中删除这个项目目录也没有问题。事实上,在工作在项目中起作用之前,它必须被删除使用 CVS 命令 checkout 可以签出项目。这个 CVS 命令在当前目录中保存项目的副本。...为了删除已经存在于库中的脚本使用 rm 命令删除它并执行 CVS 的 update 命令。 CVS 会自动删除文件。...当你正在修改你的源代码,工作团队的其他人并不会得到这些更改,知道你完成了这些脚本使用 commit 命令来提交它,提交代码之前,需要删除临时文件以节省库的空间。...“ - ”表示 exit 0 这一行被删除。“ + ”表示 exit $? 这一行被插入。接着使用脚本更新旧脚本

2.9K111

效率工具:强大的批量删除文件脚本

最近打包服务器上的apk包又增多了,每次手动rm操作过于麻烦,于是花了几分钟写了一个可以对指定目录下根据最后修改时间和通配符匹配进行批量删除脚本。...使用起来很简单,使用规则如下 1 ruby removeOldFiles.rb "dest_file_pattern" days_ago 举个例子,比如我们想删除/tmp目录下的,所有最后修改时间为...1 ruby removeOldFiles.rb "/tmp/*.apk" 3 为什么第一个参数使用双引号 第一个参数为包含通配符的路径,在shell中存在一个工具就是glob会将包含通配符的路径匹配到具体的文件...1 2 3 10:41 $ ruby test.rb "*.txt" 1 Argument: *.txt 所以在使用脚本时第一个参数一定要使用双引号。...如何遍历文件包含子目录内的 比如我们想遍历/tmp/abc/def.txt 我们可以使用/tmp/**/.txt即可

1.9K20

用Python删除电脑中的重复文件!竟然这么简单!

在生活中,我们经常会遇到电脑中文件重复的情况。 在文件较少的情况下,这类情况还比较容易处理,最不济就是一个个手动对比删除; 而在重复文件很多的时候,我们很难保证把重复文件全部删完。...-1.image] 那我们该怎么删除文件“1”的重复文件呢?...我们可以使用os模块的os.remove(path)函数,只需要指定path参数,也就是文件的路径,就可以删除文件。 这里需要提醒大家,一定是包含文件名的路径。...# 删除文件 print("删除重复文件之后, path下的文件名有哪些:", os.listdir(path))  # 打印删除重复文件之后剩下的文件 [f58684dd84094cfd887adea69308298c...~tplv-k3u1fbpfcp-zoom-1.image] 这时再去我们指定的路径的文件夹里去看,重复文件就被删除了!

1K30
领券