Как синхронизировать две папки на моей машине с одной направленной синхронизацией?

В качестве альтернативы изменению размера вы можете переместить свой / домашний каталог в другой раздел. Программы все равно будут использовать ограниченное пространство в /, но ваши личные файлы и мультимедиа и т. Д. Могут находиться на другом разделе, что должно освободить еще пространство для /.

См. Https: // справку. ubuntu.com/community/Partitioning/Home/Moving

1
задан 26 August 2015 в 18:17

2 ответа

Предупреждение: это для двунаправленной синхронизации, но учитывая, что вы в порядке делаете это вручную ... Я не знаю, есть ли возможность для однонаправленного поведения в unison --- если кто-то знает, пожалуйста, не стесняйтесь отредактируйте этот ответ.

Установите unison:

 sudo apt-get install unison unison-gtk

Создайте этот файл в каталоге $HOME/.unison, назовите его test.prf (или что-то еще)

label = sync folders A and B
root = /home/romano/tmp/folderA
root = /home/romano/tmp/folderB

Запустите unison из тире, выберите свой профиль выше и выполните первую синхронизацию. У вас будет графический интерфейс, чтобы выбрать, что копировать и где.

После этого сделайте изменения и, если хотите синхронизировать, снова используйте унисон. Это позволит вам решить, что делать:

3
ответ дан 23 May 2018 в 17:56

Это должно заставить вас идти. zenity имеет гораздо больше приложений, выходящих за рамки вашего вопроса; настройте это как хотите.

#!/bin/bash
ls -1 ./FolderA | sort > FolderA.txt
ls -1 ./FolderB | sort > FolderB.txt
FILESTOCOPY=$(diff FolderA.txt FolderB.txt | grep \< | awk '{print $2;}' | zenity --list --title="Select files to be copied" --co$
echo $FILESTOCOPY
NEWFILES=$(diff FolderA.txt FolderB.txt | grep \> | awk '{print $2;}' | zenity --list --title="New files in Folder B" --column="f$
echo $NEWFILES

Некоторые объяснения:

Команды ls -1 перечисляют имена файлов по одной строке за раз, но только имена, никакой другой информации. Поэтому этот скрипт не заметит, когда файл в одной папке более новый, чем один в другой папке с тем же именем.

Grepping для "& lt;" предоставит нам файлы в папке A, но не в папке B, и наоборот для «>». Вы можете использовать переменные, созданные zenity, для создания команды копирования или что-то еще.

1
ответ дан 23 May 2018 в 17:56
  • 1
    И я предполагаю, что FolderA.txt и FolderB.txt можно хранить в любом месте? То есть, если вы введете путь к файлу в скрипт. – Paranoid Panda 26 August 2015 в 15:26
  • 2
    Да, просто введите имена путей для FolderA и FolderB, как требуется, и найдите где-нибудь разумное для хранения временных файлов FolderA.txt и FolderB.txt. – Jos 26 August 2015 в 15:28
  • 3
    Итак, где в настоящее время предполагается FolderA и B? Если вы предполагаете, что они находятся в моем домашнем каталоге в другой папке с именем Folders, как выглядят строки ls -1? – Paranoid Panda 26 August 2015 в 15:35
  • 4
    Я бы порекомендовал ls -1 ~/Folders/FolderA | sort > ~/Folders/FolderA.txt. – Jos 26 August 2015 в 15:43

Другие вопросы по тегам:

Похожие вопросы: