linux - 如果两个目录共有,则更新文件;如果在一个目录中唯一,则删除该文件

标签 linux shell unix

假设 Directory1 有

1.File1 
2.File2
3.Subdirectory1
    Subdirectory1 has :
    3.1. File 3
    3.2. File 4

目录2有

1.File1
2.File3
3.Subdirectory1
    Subdirectory1 has :
    3.1. File 3
    3.2. File 6

如果任何文件唯一存在于 Directory2 中,则必须将其删除。 如果该文件同时存在于 Directory1 和 Directory2 中,则必须将 Directory1 中的文件复制到具有相同文件夹结构 [更新] 的 Directory2。

最佳答案

只需使用 diff,例如:

diff -r dir1 dir2 | grep dir1
Only in dir1: file2
Only in dir1/subdir1: file4
Only in dir2/subdir1: file6

然后您可以使用 awk,或将结果存储在临时文件中并在脚本中使用它。

关于linux - 如果两个目录共有,则更新文件;如果在一个目录中唯一,则删除该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56562151/

相关文章:

c - 如何为需要多次输入的 C 程序编写 Bash 脚本?

linux - 在文件生成/从用户上传到我的服务器期间流式传输 awk

linux - Vim colorscheme 在启动时加载 - linux ubuntu gnome 终端

linux - 嵌入式 linux 系统上的 zeroconf 实现

bash - bash 脚本中的 while 循环在 vim 中没有正确突出显示

shell - 如何在Makefile中设置子进程的环境变量

bash - 使用 while 循环遍历参数列表会进入无限循环

oracle - SQL*Loader 和生成的控制文件的关键字错误

java - 将javax包导入python

c - 调用 trylock() 后解锁互斥量