-
Você pode mostrar inodes de seus arquivos com ls -i -1
(-1 / "one" escreve uma linha por arquivo para saída).
-
Salve a saída para cada uma das duas pastas.
-
Se o nome do arquivo "original" e hardlinked for diferente, use cut -f1
para filtrar os nomes dos arquivos e reter apenas os números de inode.
-
Classifique os arquivos para o número de inode usando sort
. Agora você pode usar diff
para ver as diferenças.
-
Use grep "^<" diffOutput.list
para filtrar as linhas que começam com <
= > Inodes ocorrendo apenas na primeira pasta. grep "^>"
análogo para a Pasta B. Use cut -c2-
para excluir o primeiro caractere ( <
ou >
) da saída se você precisar do número de inode.
Se você já removeu os nomes dos arquivos dos arquivos, terá que procurar os nomes dos arquivos por um determinado número de inode.
Salve a saída de ls -l -1
(com nomes de arquivos) para cada pasta em um arquivo. Agora você pode usar grep
para obter os nomes de arquivos para os números de inode em um loop bash:
Seja InodesFilenamesA.list
o arquivo contendo números de inode e nomes de arquivos para a pasta A
12345 file1inBothFolders
99999 file2OnlyInFolderA
88888 file3OnlyInFolderA
...
Deixar inodesA.list
ser um arquivo contendo Inodes que ocorrem apenas na pasta A
99999
88888
....
Agora faça um loop sobre inodesA.list
.
cat inodesA.list | while read line; do
grep "$line" InodesFilenamesA.list
done
Você recebe uma lista de pastas