根据上次修改日期比较两个文件夹

发布于 2024-11-27 23:47:25 字数 128 浏览 2 评论 0原文

我有两个文件夹 A 和 B,它们包含相同的文件夹结构和文件,但文件夹 B 包含修改后的文件。这两个文件夹也包含子文件夹。 我想检查文件夹 B 中哪些文件被修改,并将其复制到另一个文件夹 C 中。 如何使用 cmd/shell 脚本实现此目的?

I have two folders A and B, which contain identical folder structure and files, but Folder B contains modified files. Both folders contain subfolders too.
I want to check which files are modified in folder B and copy it to a different folder C.
How can I achieve this using a cmd/shell script?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

于我来说 2024-12-04 23:47:25

AFAIK rsync 和 unison 无法满足您的需求,因为您希望将更改转到第三个文件夹 C。

此代码未经测试:

#python
import os
import shutil
a_dir=...
b_dir=...
c_dir=...
len_a_dir=len(a_dir)
for root, dirs, files in os.walk(a_dir):
    dirs.sort()
    for file in sorted(files):
        a_file=os.path.join(root, file)
        b_file='%s%s' % (b_dir, file[len_a_dir:])
        if os.path.getmtime(a_file)!=os.path.getmtime(b_file):
            c_file='%s%s' % (c_dir, file[len_a_dir:])
            shutil.copyfile(b_file, c_file)

AFAIK rsync and unison can't handle your needs, since you want the changes to go to a third folder C.

This code is untested:

#python
import os
import shutil
a_dir=...
b_dir=...
c_dir=...
len_a_dir=len(a_dir)
for root, dirs, files in os.walk(a_dir):
    dirs.sort()
    for file in sorted(files):
        a_file=os.path.join(root, file)
        b_file='%s%s' % (b_dir, file[len_a_dir:])
        if os.path.getmtime(a_file)!=os.path.getmtime(b_file):
            c_file='%s%s' % (c_dir, file[len_a_dir:])
            shutil.copyfile(b_file, c_file)
白龙吟 2024-12-04 23:47:25

试试这个:

rsync -r --compare-dest=/path/to/A /path/to/B/ /path/to/C

Try this:

rsync -r --compare-dest=/path/to/A /path/to/B/ /path/to/C
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文