diff命令两个服务器文件,linux 比较两个文件夹不同 (diff命令, md5列表)

本文介绍了如何使用Linux的diff命令和MD5校验和来比较两个文件夹的内容差异。通过添加参数-N、-r和-u,可以递归地逐行比较文件,并以统一格式显示差异。同时,利用find命令获取文件夹中所有非隐藏文件的MD5列表,但需要注意的是,一旦用tar压缩文件,比较MD5将无法反映原始文件内容差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比较文件夹diff,可以直接使用diff命令

[root@~]# diff -urNa dir1 dir2

-a Treat all files as text and compare them line-by-line, even if they do not seem to be text.

-N, --new-file

In directory comparison, if a file is found in only one directory, treat it as present but empty in the other directory.

-r When comparing directories, recursively compare any subdirectories found.

-u Use the unified output format.

比较文件夹diff,也可以比较文件MD5列表。下面命令可以获取文件夹中文件md5列表

find /home/ -type f -not ( -name '.*' ) -exec md5sum {} ;

说明:(1) /home/文件目录

(2) -type f 文件类型为普通文件

(3) -not ( -name '.*' )  过滤掉隐藏文件。可以过滤掉不需要考虑的文件

(4) -exec md5sum {} ;  对每个文件执行md5sum命令

用tar命令压缩后,比较文件的MD5是不行的。tar压缩会带上文件的时间

5be7bf4bbb881c3b0dcf591da953a353.png

### 如何在Linux系统上使用Git进行版本控制 #### 安装Git 为了能够在Linux系统上使用Git,首先要安装该工具。大多数现代Linux发行版都自带了包管理器,可以通过这些工具轻松安装Git。 对于基于Debian/Ubuntu的系统: ```bash sudo apt update && sudo apt install git ``` 对于基于Red Hat/CentOS/Fedora的系统: ```bash sudo yum install git-all ``` 确认安装成功后,可以查看当前已安装的Git版本[^1]: ```bash git --version ``` #### 配置Git环境 首次设置Git时,需要配置用户名和邮箱地址,这是提交记录中的重要信息部分。 ```bash git config --global user.name "Your Name" git config --global user.email you@example.com ``` 还可以通过编辑`~/.gitconfig`文件来自定义其他全局参数,比如默认使用的文本编辑器等。 #### 初始化仓库 创建一个新的目录作为工作区,并初始化为Git库: ```bash mkdir my_project cd my_project git init ``` 这将在指定路径下建立`.git`隐藏文件夹,标志着本地存储库准备就绪。 #### 添加并提交更改 当完成一些开发任务之后,应该把改动加入暂存区再正式保存至历史记录里。 假设有一个名为`README.md`的新文档被添加到了项目根目录,则执行如下操作将其纳入跟踪范围之内: ```bash echo "# My Project" > README.md git add README.md git commit -m "Add initial project structure and readme file." ``` 每次做出有意义的变化都应该重复上述过程以保持良好的变更日志维护习惯[^3]。 #### 查看状态与差异对比 随时可以用简单的命令来获取关于工作树状况以及最近一次提交以来所做修改的信息概览: ```bash git status git diff ``` 这两个指令有助于理解哪些文件发生了变化及其具体内容的不同之处。 #### 创建分支与合并 利用分支特性可以在不影响主线的前提下探索不同的解决方案或尝试实验性质的功能扩展。 新建一个叫作feature_x的分支并且切换过去继续干活儿: ```bash git branch feature_x git checkout feature_x # 或者更简洁的方式一步到位 git checkout -b feature_x ``` 待完成后返回主干master实施融合动作: ```bash git checkout master git merge feature_x ``` 如果有冲突发生则需手动解决后再重新commit更新后的成果。 #### 推送远程同步 通常情况下个人开发者会将自己的源码托管于像GitHub这样的在线平台之上以便分享给他人协作交流或是备份之用。 先关联远端服务器上的空白repo链接(假定URL为https://github.com/user/repo.git),接着推送本地commits上去形成完整的线上副本: ```bash git remote add origin https://github.com/user/repo.git git push -u origin master ``` 以后只需简单地调用`git push`就能快速上传最新的进展给云端伙伴们共享啦[^2]!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值