在 QNAP(威联通)NAS 上自动查找和删除 重复文件 的方法

article/2025/10/6 21:23:05

Qidi 2020.12.12


0. 前言

看到很多人说在 QNAP NAS 上使用 fdupes 工具只能实现查找重复文件的效果,要删除文件只能对照生成的重复文件列表手动操作。这个说法其实是不对的,fdupes 完全支持自动去重功能。

以下正文说明了使用 fdupes 工具自动查找并删除重复文件的详细步骤。


1. 安装 fdupes

QNAP NAS 没有官方的去重工具,需要先手动下载并安装 fdupes 软件。

fdupes 是一款用于文件去重的开源工具(代码仓库)。喜欢折腾的小伙子可以把代码拉到本地,自己编译安装包;和我一样懒得动的朋友可以直接到 QNAPClub.eu(点我) 下载。

网站上提供了不同的软件版本,请根据自己的 NAS 机型选择对应的版本进行下载:
软件版本

我的 NAS 机型使用的 CPU 是 x86_64 架构,所以选择上图所示的 “TS-NASX86_64” 这项。截至写作本文时,能下载到的最新版安装包为 Fdupes_1.61_x86_64.qpkg

下载完成后,需要进入 NAS 的 App Center 中手动加载安装包进行安装:
手动安装 fdupes
点击上图所示带 +号 的按钮后,会弹出一个会话框让你选择安装包的路径。找到你刚刚下载的安装包,点击 安装 按钮就可以了。


2. 为 NAS 开启 SSH 连接

fdupes 的图形化操作界面既丑陋又不好用,所以请和我一样,使用命令行方式来操作。

先检查 NAS 是否允许 SSH 连接。如果你不清楚,请先到控制台中检查并确保这个功能已经启用。见下图:
启用SSH
如果你觉得一直开着 SSH 端口不安全,那么在完成文件查重和删除后,再禁用 SSH 连接即可。

QNAP 的 NAS 只允许以管理员身份使用 SSH,所以我们需要在登录时指明身份。在本地打开一个 cmd 窗口,并执行如下命令(记得替换成你自己的 NAS 的 IP 地址):

ssh admin@192.168.1.24

之后请根据提示,输入你的 NAS 的管理员密码。

至此,我们就通过 SSH 登录到 NAS 上了。


3. 使用 fdupes 查找并删除重复文件

别急,先检查下 fdupes 是否已正确安装。

执行 fdupes --help 命令,如果看到下面这些打印,就说明 fdupes 已经安装就绪了。否则,请检查你下载的软件版本是否有误,并重新安装:

[/share/CACHEDEV1_DATA/myPhotos] # fdupes --help
Usage: fdupes [options] DIRECTORY...-r --recurse           for every directory given follow subdirectoriesencountered within-R --recurse:          for each directory given after this option followsubdirectories encountered within (note the ':' atthe end of the option, manpage for more details)-s --symlinks          follow symlinks-H --hardlinks         normally, when two or more files point to the samedisk area they are treated as non-duplicates; thisoption will change this behavior-n --noempty           exclude zero-length files from consideration-A --nohidden          exclude hidden files from consideration-f --omitfirst         omit the first file in each set of matches-1 --sameline          list each set of matches on a single line-S --size              show size of duplicate files-m --summarize         summarize dupe information-q --quiet             hide progress indicator-d --delete            prompt user for files to preserve and delete allothers; important: under particular circumstances,data may be lost when using this option togetherwith -s or --symlinks, or when specifying aparticular directory more than once; refer to thefdupes documentation for additional information-N --noprompt          together with --delete, preserve the first file ineach set of duplicates and delete the rest withoutprompting the user-I --immediate         delete duplicates as they are encountered, withoutgrouping into sets; implies --noprompt-p --permissions       don't consider files with different owner/group orpermission bits as duplicates-o --order=BY          select sort order for output and deleting; by filemodification time (BY='time'; default), statuschange time (BY='ctime'), or filename (BY='name')-i --reverse           reverse order while sorting-v --version           display fdupes version-h --help              display this help message[/share/CACHEDEV1_DATA/myPhotos] #

通过上面的帮助信息可以看到,我们能够以 交互方式 或者 静默方式 执行重复文件查找和删除。

当检测到重复文件时,交互方式 会给出提示信息,等待用户(也就是你)自己来决定保留重复文件中的哪一个;静默方式 则会按照预先给定的策略自动删除重复的文件。


现在可以真正开始查找和删除重复文件了。

不想读 fdupes帮助信息 的朋友可以直接用我下面给出的几组命令:

要查看指定目录下的文件重复情况,执行命令 fdupes -m -A -R myPhotos(myPhotos 是要进行查重的目标目录名,需要替换成你自己的)。输出信息如下,可以看到重复文件数量及其占用的磁盘空间:

[/share/CACHEDEV1_DATA] # fdupes -A -m -R myPhotos
247 duplicate files (in 247 sets), occupying 441.31 megabytes[/share/CACHEDEV1_DATA] #

-A 参数的含义是不对隐藏文件进行检查。如果你希望对隐藏文件也进行检查,将命令中的 -A 参数删去即可。

交互方式 去重,执行命令 fdupes -d -A -R myPhotos (同上,请替换目标目录名为你自己的)。输出信息如下。每找到一组重复文件,软件都会打印提示,然后等待用户指定一个文件进行保留:

[/share/CACHEDEV1_DATA] # fdupes -d -A -R myPhotos
[1] myPhotos/2019-12-15上传/IMG_3141.JPG
[2] myPhotos/2019-12-15上传/IMG_0398.JPGSet 1 of 247, preserve files [1 - 2, all]: 1[+] myPhotos/2019-12-15上传/IMG_3141.JPG[-] myPhotos/2019-12-15上传/IMG_0398.JPG[1] myPhotos/2019-12-15上传/IMG_0042.JPG
[2] myPhotos/20200807上传/IMG_2557.JPGSet 2 of 247, preserve files [1 - 2, all]: 1[+] myPhotos/2019-12-15上传/IMG_0042.JPG[-] myPhotos/20200807上传/IMG_2557.JPG[1] myPhotos/20200807上传/IMG_4212.JPG
[2] myPhotos/Xiaomi_Pic_Backup/20201009/mmexport1600648565483.jpg......

使用交互方式的好处是,可以对软件提示的重复文件进行核对后再删除。

静默方式 去重,执行命令 fdupes -d -N -A -R myPhotos (同上,请替换目标目录名为你自己的)。输出信息如下。软件默认策略为保留每组重复文件中的第一个,并删除其它项:

[/share/CACHEDEV1_DATA] # fdupes -d -N -A -R myPhotos[+] myPhotos/20200807上传/IMG_4218.JPG[-] myPhotos/Xiaomi_Pic_Backup/20201009/mmexport1600648483613.jpg[+] myPhotos/20200807上传/IMG_2495.JPG[-] myPhotos/20200807上传/IMG_2496.JPG[+] myPhotos/20200807上传/IMG_1780.JPG[-] myPhotos/20200807上传/IMG_1779.JPG......

无论使用哪种方式去重,最后的结果都是彻底清除了指定目录下的重复文件。为了确认这一事实,我们可以再次执行命令 fdupes -m -A -R myPhotos 进行检查。输出如下:

[/share/CACHEDEV1_DATA] # fdupes -m -A -R myPhotos
No duplicates found.[/share/CACHEDEV1_DATA] #

可以看到目标目录下已经清理干净。


http://chatgpt.dhexx.cn/article/ulR5b9ZW.shtml

相关文章

硬盘快满了,怎么办?查找重复文件

硬盘快满了,怎么办?查找重复文件,绿色版 链接:https://pan.baidu.com/s/1nbhRhninawNLK5CHZfanWA 提取码:yu37 序列号 TDFP-XWAL-EPNX-ALWN-LLLLLL 它非常易于使用,只需要选择资源(驱动器&…

重复文件查找工具

电脑在经过长时间的使用后,会存在着大量重复的无用文件,这些文件会占用我们电脑中有限的磁盘空间,虽然现在我们的磁盘空间都是够大了,这些重复文件也许不算什么,但是它们会影响到系统的效能,并且我们还是要…

计算机一级查找同类型文件,如何快捷找出电脑内的重复文件

有时特喜欢收集各种软件和资料,但是时间久了,很多软件和资料之前下载过了,后来不记得了,又下载了,这样重复的非常多。这样重复的文件多了,占了大量的磁盘空间,也影响电脑运行性能,当…

怎么快速查找重复文件以及删除重复文件

多余的重复文件可能会浪费大量的硬盘存储空间,久而久之,电脑内存就会不够用,uplicate Finder and Remover for Mac是一款功能强大且操作简单的软件,如果您想要快速找出重复文件,节省磁盘空间,装机必备软件。…

mac电脑重复文件如何查找?

当我们的MAC电脑提示你磁盘空间已满时可以通过在Mac上删除不必要的重复文件,文件夹和类似照片,可以获得更多可用磁盘空间,Duplicate File Finder for Mac是一款功能强大的重复文件查找软件。Duplicate File Finder for Mac可处理图像,视频,音乐,文档,文件夹等等。它允许…

如何查找重复文件并快速删除,电脑查重复文件的方法

在日常使用电脑的过程中,我们要下载、编辑、保存文件,难免会出现一些重复文件,这些重复文件不仅会给工作带来不便,也会占用硬盘宝贵的空间。因此,经常查找与清理电脑中的重复文件就显得格外重要。如何查找重复文件并快…

jquery.orgchart.js 简单demo,自定义内容,自定义事件

orgchart简单demo GIT地址&#xff1a; https://github.com/Vlovely/orgchartDemo.git 预览图 代码示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"utf-8"><title>Organization Chart Plugin</title>&…

html 组织结构 图表,OrgChart-简单实用的组织结构图表jQuery插件

OrgChart是一款简单实用的组织结构图表jQuery插件。OrgChart通过DOM元素,jQuery和CSS3过渡效果来制作组织结构图表。可以使用本地数据,或通过ajax调用来完成数据的填充。 使用方法 使用OrgChart组织结构图表插件需要在页面中引入jquery.orgchart.css,jquery和html2canvas.js…

html5控件结构图,OrgChart组织架构图控件

插件描述:jQuery OrgChart 是一个用来绘制组织结构图的 jQuery 插件。 可以自己定加载自己想要的组织架构,通过json的形式 该插件为画组织架构图插件,通过OrgChart API定义的数据接口以json的数据形式将自己想要的组织架构数据传给orgChart,上手难度低,可扩展性比较高。 从…

使用vue-orgchart库来创建组织架构图

在这篇博客中&#xff0c;将详细介绍如何构建一个使用Vue.js和vue-orgchart的组织架构图Demo。Vue.js是一种构建用户界面的JavaScript框架&#xff0c;而vue-orgchart是一个基于Vue的组织结构图组件。本Demo将展示如何使用这两种技术来创建一个展示组织架构的可视化工具。 页面…

JQ插件OrgChart实现组织结构图

最近在做一个OA系统的组织结构图&#xff0c;需求如下。 第一眼看起来让人联想到脑图&#xff0c;思维导图大家都比较熟悉。但这不是脑图&#xff0c;是组织结构图。有添加&#xff0c;编辑&#xff0c;删除等功能… 随后我就找了一些插件&#xff1a; 1、jsMind&#xff08;…

使用OrgChart技术流程图(树状图)

基于OrgChart技术流程图[树状图] 一.实现效果图二.数据集三.实现思路1.创建数据封装函数2.将现有的数据处理成json数组3.调用closureProcessing()函数,将json数组变为json字符串4.初始化画布,并设置数据 四.源码1.HTML部分源码(即展示树状图用的画布容器)2.CSS部分的样式代码3.…

vue-orgchart 实现节点的增 删 改 功能

UI框架是 ant-design-vue 导出图片我是自己重新写的&#xff0c;要下载 html2canvas vue-orgchart 属性说明 在 这篇文章中https://blog.csdn.net/weixin_44164867/article/details/110871475 https://balkan.app/OrgChartJS-Demos/ 官网有好多例子可以使用 <template>…

最需要的时候遇见你OrgChart

聊聊OrgChart 使用&#xff0c;优雅的方式为你展现舒服的组织架构图&#xff0c; 前言 闲来无事写一个多级用户关系层&#xff0c;于是就存在展示的问题。这时OrgChart就派上了用场。 在用的过程中&#xff0c;有一耐耐的小问题&#xff0c;咔咔就借着问题点&#xff0c;给大…

使用OrgChart插件生成家谱组织结构图

1.orgchart插件&#xff1a; github地址&#xff1a;https://github.com/dabeng/OrgChart 2.前端代码&#xff1a; //1.加载树形数据&#xff1a;ajax请求获取json格式的数据&#xff08;flag参数可以无视&#xff0c;我自己的业务逻辑需要&#xff09;function setTreeInfo(fl…

OrgChart页面模仿编程简单记录

OrgChart页面模仿编程简单记录 导航栏 整体来看&#xff0c;导航栏设计的还是比较简洁&#xff0c;顶部有8个导航模块&#xff0c;每个模块点击后会跳转到相应模块页面。可以使用在App.js页面中使用<Router> <Navlink>来实现。 <Router> <nav> <…

如何在react中使用OrgChart?

最近在将OrgChart嵌入至React时&#xff0c;碰见了一些坑&#xff0c;希望能以此记录我是怎么爬出来的~ 一、什么是OrgChart&#xff1f; 一款基于jquery来画组织架构图的插件。有以下特点&#xff1a; 支持本地数据和远程数据&#xff08;JSON&#xff09;基于CSS3转换的平滑…

orgChart的应用

文档地址&#xff1a;https://balkangraph.com/OrgChartJS/Demos/FirstLook 效果 html: <div id"tree" style"height: 500px;width: 100%;"></div><script src"__TMPL__/public/assets/js/orgchart.js"></script> <…

vue-orgchart拓扑图

安装vue-orgchart npm install vue-orgchart -S//main.js引入样式 import vue-orgchart/dist/style.min.css//使用页面引入 <template><div class"orgchart_Box_Y"><div class"box_right_container" v-if"ifLoading"><Vo…

jquery.orgchart.js

<!doctype html> <html> <head> <meta charset"utf-8"> <title>geovindu,Geovin Du,涂聚文</title><link rel"stylesheet" href"css/jquery.orgchart.css"> <script type"text/javascript&qu…