Não tenho certeza se é isso que você está procurando. Mas, para obter todos os nomes das pastas no X, você poderia fazer:
find /some/directory -type d -print
Repita isso em Y. É claro que, se os dois diretórios forem: /ParentFolder/FolderName/Files.mp4
e /Mount/FolderName/Files.mp4
, verifique se cd
foi suficiente para que você tenha movido a parte dos caminhos diferentes. / p>
Portanto, no primeiro diretório, cd
into /ParentFolder
. No segundo caso, cd
into /Mount
.
Se você fizer isso em ambos os diretórios, você terá duas listas (vamos chamá-las de list1.txt
e list2.txt
), você pode concatená-las, classificar e imprimir linhas exclusivas:
cat list1.txt list2.txt | sort | uniq -u
Estes são os diretórios que existem em apenas uma lista. Você pode armazenar isso em uma variável:
unique_paths='cat list1.txt list2.txt | sort | uniq -u | xargs'
e depois percorrer:
for my_path in ${unique_paths} ; do
if [ -e "/ParentFolder/${my_path}" ] ; then
## Do something to it
else
## This means it is in /Mount/, so do something else
fi
done
Eu não tentei isso sozinho - então teste primeiro.
Como alternativa, você pode querer olhar para as páginas man do rsync. Algumas combinações de suas opções podem atingir o que você deseja.