我有两个音乐库,一个版本比另一个新。我想将它们与我需要将哪些文件从新音乐树复制到旧文件进行比较。
我已经diff --brief -r /oldmusicdir/ /newmusicdir/根据另一个用户的建议进行了尝试,但是 ^C 十五分钟后的过程(我猜差异是扫描音乐文件本身——这不是必需的)。
然后我尝试find /oldmusicdir/ -type d | sort > oldmusicdir了旧的和新的,然后运行diff oldmusicdir newmusicdir但是,因为我将音乐目录存储在不同的位置,所以每个条目都被标记了。
接下来我尝试运行,find /musicdir/ -type d | basename -s - | sort > musicdir但我的 musicdir 文件只是读取“-”
有谁知道如何让 basename 从 STDIN 接受?或者,有没有人有更好的方法来快速比较两个音乐目录?
谢谢!
小智 15
rsync当我看到你的问题时,这个实用程序首先出现在我的脑海中。执行以下操作可以快速显示目录中a但不在 中的文件b:
$ rsync -rcnv a/* b/
-r will recurse into the directories
-c will compare based on file checksum
-n will run it as a "dry run" and make no changes, but just print out the files
that would be updated
-v will print the output to stdout verbosely
Run Code Online (Sandbox Code Playgroud)
这是一个不错的选择,因为您还可以比较文件的内容以确保它们匹配。 rsync的 delta 算法针对此类用例进行了优化。然后,如果您想b匹配 的内容a,您可以删除-n执行实际同步的选项。
一些相关问题:
| 归档时间: |
|
| 查看次数: |
9950 次 |
| 最近记录: |