Обновите файл, если он является общим для двух каталогов, и удалите его, когда он уникален в одном каталоге - PullRequest
0 голосов
/ 12 июня 2019

Предположим, что в Directory1 есть

1.File1 
2.File2
3.Subdirectory1
    Subdirectory1 has :
    3.1. File 3
    3.2. File 4

и

В каталоге2 есть

1.File1
2.File3
3.Subdirectory1
    Subdirectory1 has :
    3.1. File 3
    3.2. File 6

Если какой-либо файл уникально присутствует в Directory2, его необходимо удалить. Если файл присутствует как в Справочнике1, так и в Справочнике2, файлы в Справочнике1 должны быть скопированы в Справочник2 с той же структурой папок [Обновления].

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Кажется, вы говорите о функции зеркалирования, смотрите хороший инструмент с открытым исходным кодом rsync.https://rsync.samba.org/

Он может делать все это и даже больше (а также удаленную синхронизацию через локальную сеть или через SSH, если необходимо).

rsync -options --otherOptions sourceDir targetDir

Обычно вы используете следующие параметры командной строки:

rsync -av /src/foo /dest
or
rsync -av /src/foo/ /dest/foo

Примечание: если вы пропустите завершающий символ "/" в / src / foo, то rsync будет зеркально отображать в / dest и создаст подкаталог foo.У вас есть один или другой выбор, как использовать эту команду.

0 голосов
/ 12 июня 2019

Просто используйте diff, например:

diff -r dir1 dir2 | grep dir1
Only in dir1: file2
Only in dir1/subdir1: file4
Only in dir2/subdir1: file6

Вы можете затем awk или сохранить результат во временном файле и использовать его в своем скрипте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...