Ein Ordner mit zwei verschiedenen Speicherorten unter Ubuntu 18.04

Ein Ordner mit zwei verschiedenen Speicherorten unter Ubuntu 18.04

Ich möchte denselben Ordner an zwei verschiedenen Orten in meinem Ubuntu haben. Wenn ich etwas an einem Ort aktualisiere, sollte es auch am anderen Ort aktualisiert werden.

Wie kann ich das erreichen?

Antwort1

Wie in den Kommentaren erwähnt, aber nicht als richtige Antwort:

In vielen Fällen ist ein symbolischer Link die einfachste Lösung.

Sie können sie einfach auf der Kommandozeile erstellen (mit dem lnBefehl mit -sParameter). Sie können sie auch einfach mit einer GUI erstellen: Die meisten Dateibrowser (Nautilus, ...) ermöglichen Ihnen die Erstellung eines symbolischen Links per Drag & Drop (wie beim Verschieben einer Datei), während Sie eine Sondertaste (STRG+UMSCHALT) gedrückt halten.

Beispiel für die Verwendung über die Befehlszeile:

$ mkdir first_dir
$ ln -s ./first_dir ./second_dir
$ ls 
first_dir  second_dir

$ touch ./first_dir/test_1
$ touch ./second_dir/test_2

$ ls ./first_dir 
test_1  test_2

$ ls ./second_dir
test_1  test_2

Antwort2

VerwendenHalterungen binden.

Angenommen, Sie haben ein vorhandenes Verzeichnis /home/pandey/originalund möchtenSpiegeles /home/pandey/mirrorso, dass alles, was Sie in einem von beiden tun, automatisch auch im anderen getan wird.

Dies erfordert keine Synchronisierung oder Kopie zwischen den beiden Verzeichnissen.Bind-Mountist nur ein weitererSichtzum ursprünglichen Verzeichnis und was in dem einen passiert, passiert auch im anderen.

  1. Erstellen Sie (als Ihr Benutzer) das neue Verzeichnis /home/pandey/mirror:

    mkdir /home/pandey/mirror
    
  2. Bind-Mountdas ursprüngliche Verzeichnis in den neu erstellten Pfad. Dies erfordert Root-Zugriff:

    sudo mount --bind /home/pandey/original /home/pandey/mirror
    
  3. Genießen.

Um dies rückgängig zu machen, einfach

sudo umount /home/pandey/mirror
rmdir /home/pandey/mirror

Siehe auch diese Frage und ihre hervorragende Selbstantwort auf Stackexchangeüber Bind-Mounts.

Antwort3

Sie können dies tun, indem Sie einen Crontab-Job einrichten:

  • Öffnen Sie Ihr Terminal und geben Sie eincrontab -e
  • Drücken Sie i, um den Einfügemodus Ihres Vim-Editors zu aktivieren.

Dort können Sie den gewünschten Befehl eingeben, um alle Dateien des Ordners in einen anderen Ordner zu kopieren. Wenn Sie beispielsweise alle Dateien in kopieren möchten, /home/user/folder_namemüssen /home/user/publicSie diesen Befehl in Ihren crontabOrdner einfügen:

rsync /home/user/folder_name -r /home/user/public

Dadurch werden alle Dateien im gewünschten Intervall kopiert. Wenn Sie alle Dateien jeden Tag um 21:30 Uhr kopieren möchten, sollten Sie Folgendes eingeben:

 30 21 * * *  rsync /home/user/folder_name -r /home/user/public

Weitere Informationen zucrontabsehenHieroder verwenden Sie man crontab.

verwandte Informationen