usando diff para comparar um arquivo e um diretório

2

provavelmente há uma maneira mais simples de fazer isso, mas eu corri ls no diretório / media / user sem armazenamento usb conectado e salvei a saída em um arquivo e eu queria usar o diff para comparar o arquivo com um novo usb conectado e comparar o arquivo com o diretório / media / user para que ele detecte o novo diretório em / media do usb

Eu usei até agora

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

a saída que eu obtenho é no /media/user/usbmedia.diff file, então está procurando por um arquivo com o mesmo nome, mas como obtenho o comando diff para não fazer isso e comparar o diretório com o arquivo

    
por Eric Newman 14.08.2014 / 10:20

2 respostas

1

Você está quase certo.

/tmp é uma prática melhor:

#!/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
    
por Tim 14.08.2014 / 10:33
0

Você pode fazer isso:

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

Em seguida, conecte seu dispositivo

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

& lt; () isso é chamado de substituição de processo

Você pode ler sobre a substituição de processos <() aqui e aqui

    
por c0rp 14.08.2014 / 10:26