
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 ln
Befehl mit -s
Parameter). 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/original
und möchtenSpiegeles /home/pandey/mirror
so, 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.
Erstellen Sie (als Ihr Benutzer) das neue Verzeichnis
/home/pandey/mirror
:mkdir /home/pandey/mirror
Bind-Mountdas ursprüngliche Verzeichnis in den neu erstellten Pfad. Dies erfordert Root-Zugriff:
sudo mount --bind /home/pandey/original /home/pandey/mirror
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 ein
crontab -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_name
müssen /home/user/public
Sie diesen Befehl in Ihren crontab
Ordner 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
.