Ubuntu 18.04 上一个文件夹有两个不同的位置

Ubuntu 18.04 上一个文件夹有两个不同的位置

我想在 Ubuntu 的两个不同位置拥有同一个文件夹。如果我在其中一个位置更新某些内容,则另一个位置也应更新。

我怎样才能实现它?

答案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,您在其中一个程序中执行的所有操作也会自动在另一个程序中完成。

这不需要在两个目录之间进行任何同步或复制。绑定挂载只是另一个看法到原始目录,在一个目录中发生的事情也会在另一个目录中发生。

  1. (以您的用户身份)创建新目录/home/pandey/mirror

    mkdir /home/pandey/mirror
    
  2. 绑定安装将原始目录移至新创建的路径。这需要 root 访问权限:

    sudo mount --bind /home/pandey/original /home/pandey/mirror
    
  3. 享受。

要撤消此操作,只需

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

另请参阅此问题及其在 stackexchange 上的出色自我回答关于绑定安装

答案3

你可以通过设置 crontab 作业来完成此操作:

  • 打开终端并输入crontab -e
  • 按下i以激活 vim 编辑器的插入模式。

您可以在此处输入要执行的命令,这样您就可以将文件夹中的所有文件复制到另一个文件夹中。例如,如果您想将所有文件复制到,/home/user/folder_name则应/home/user/publiccrontab文件中插入此命令:

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

这将在所需的时间间隔内复制所有文件。如果您想在每天 21:30 复制所有文件,您的编辑应该是:

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

有关更多信息定时任务这里或使用man crontab

相关内容