
Ubuntu の 2 つの異なる場所に同じフォルダーを配置したいです。一方の場所で何かを更新すると、もう一方の場所でも更新される必要があります。
どうすれば実現できるでしょうか?
答え1
コメントで指摘されているように、適切な回答ではありません:
多くの場合、シンボリック リンクが最も簡単な解決策です。
コマンドラインで簡単に作成できます (パラメータln
付きのコマンドを使用-s
)。 GUI を使用しても簡単に作成できます。ほとんどのファイル ブラウザ (nautilus など) では、修飾キー (CTRL+SHIFT) を押しながらドラッグ アンド ドロップ (ファイルの移動など) を使用してシンボリック リンクを作成できます。
コマンドラインの使用例:
$ 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
答え2
使用バインドマウント。
既存のディレクトリがあり/home/pandey/original
、鏡/home/pandey/mirror
どちらか一方で行うすべての操作は、もう一方でも自動的に実行されるようにします。
2つのディレクトリ間での同期やコピーは必要ありません。バインドマウントもう一つのビュー元のディレクトリに戻り、一方のディレクトリで発生した事象はもう一方のディレクトリでも発生します。
新しいディレクトリを(ユーザーとして)作成します
/home/pandey/mirror
:mkdir /home/pandey/mirror
バインドマウント元のディレクトリを新しく作成したパスに移動します。これにはルートアクセスが必要です。
sudo mount --bind /home/pandey/original /home/pandey/mirror
楽しむ。
これを元に戻すには、
sudo umount /home/pandey/mirror
rmdir /home/pandey/mirror
この質問と、StackExchange の優れた自己回答も参照してください。バインドマウントについて。
答え3
crontab ジョブを設定することでこれを実行できます:
- ターミナルを開いて入力してください
crontab -e
i
vim エディタの挿入モードを有効にするには、これを押します。
そこに実行したいコマンドを入力すると、フォルダー内のすべてのファイルを別のフォルダーにコピーできます。たとえば、すべてのファイルを にコピーする場合は、/home/user/folder_name
ファイル/home/user/public
に次のコマンドを挿入しますcrontab
。
rsync /home/user/folder_name -r /home/user/public
これにより、必要な間隔ですべてのファイルがコピーされます。毎日 21:30 にすべてのファイルをコピーする場合は、次のように編集します。
30 21 * * * rsync /home/user/folder_name -r /home/user/public
詳細についてはクローンタブ見てここまたは を使用しますman crontab
。