使用 diff 比较文件和目录

使用 diff 比较文件和目录

可能有更简单的方法可以做到这一点,但我在没有插入 USB 存储的情况下在 /media/user 目录上运行了 ls,并将输出保存到文件中,我想使用 diff 将文件与插入的新 USB 进行比较,并将文件与 /media/user 目录进行比较,以便它从 USB 中检测到 /media 中的新目录

我至今为止用过

ls > usbmedia.diff 
diff /home/user/desktop/scripts/usbmedia.diff /media/user/

我得到的输出是no /media/user/usbmedia.diff文件,因此它正在寻找同名的文件,但是如何让 diff 命令不这样做并将目录与文件进行比较

答案1

你几乎说对了。

/tmp更好的做法是:

#!/bin/bash

while:                                            # Go forever.
    ls /media/<USERNAME>/ > /tmp/media.diff
    sleep 10
    ls /media/<USERNAME>/ > /tmp/mediacompare.diff
    diff /tmp/media.diff /tmp/mediacompare.diff
done

答案2

你可以这样做:

$ ls /media/user/ > /home/user/desktop/scripts/usbmedia.diff

然后插入您的设备

$ diff /home/user/desktop/scripts/usbmedia.diff <(ls /media/user/)

<()这就是所谓的流程替代

您可以阅读流程替代 <() 这里这里

相关内容