Ubuntu 18.04에서 두 개의 다른 위치를 가진 하나의 폴더


10

우분투의 두 곳에서 같은 폴더를 원합니다. 하나에서 무언가를 업데이트하면 다른 위치에서도 업데이트되어야합니다.

어떻게하면 되나요?


8
이 두 위치가 물리적 공간이어야합니까 (2 배 공간을 차지하는 것처럼) 링크 일 수 있습니까?
Rinzwind 2016 년

19
A symbolic link는 요구 사항에 대한 가장 간단한 솔루션이며 수퍼 유저 권한에 의존하지 않습니다. man ln자세한 내용은.
doneal24

답변:


16

바인드 마운트를 사용하십시오 .

기존 디렉토리에 있다고 가정 /home/pandey/original하고 싶어 거울/home/pandey/mirror당신이 그들 중 하나에서 할 그 모든 것이 자동으로 다른 하나에서 수행되도록.

두 디렉토리간에 동기화 또는 복사가 필요하지 않습니다. 바인드 마운트는 또 다른입니다 보기 원래 디렉토리에 어떤 하나의 일이 아니라 다른에서 발생합니다.

  1. 새 디렉토리를 (사용자로) 작성하십시오 /home/pandey/mirror.

    mkdir /home/pandey/mirror
    
  2. 원래 디렉토리를 새로 작성된 경로에 바인드 마운트 하십시오. 루트 액세스가 필요합니다 :

    sudo mount --bind /home/pandey/original /home/pandey/mirror
    
  3. 즐겨.

이것을 취소하려면 간단히

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

바인드 마운트에 대한 스택 교환 에 대한 이 질문과 탁월한 자체 답변을 참조하십시오 .


3
+1, 확실히이 방법은 내가 제안한 방법보다 빠릅니다.
Codito ergo sum

13
Would'd cd /home/pandey; ln -s original mirror같은 효과를 가지고 sudo는 권한을 필요로하지?
doneal24

19
예, 사람들이 왜이 로터리 솔루션을 제안하는지 궁금합니다. 간단한 sym 링크를위한 전형적인 사용 사례처럼 들립니다. 장점은 무엇입니까? 내가 볼 수있는 한 여기에 언급 된 질문에 나열된 장점 중 어느 것도 적용되지 않는 것 같습니다.
Voo

5
@ doneal24 동의합니다 : 심볼릭 링크는 실제적인 관점에서 동일한 효과를 가지며 기본적인 시스템 변경 및 관리자 권한이 필요하지 않습니다.
바나듐

2
바인드 마운트에 대한 관련 질문에는 가능한 사용 사례 목록이 있습니다. 디렉토리에 대한 또 다른 명명 된 경로가 필요한 것은 그중 하나가 아닙니다.
Dubu

44

의견에서 지적되었지만 올바른 답변은 아닙니다.

대부분의 경우 심볼릭 링크가 가장 쉬운 솔루션입니다.

매개 변수 ln와 함께 명령을 사용하여 명령 행에서 쉽게 작성할 수 있습니다 -s. GUI를 사용하여 쉽게 작성할 수 있습니다. 대부분의 파일 브라우저 (노틸러스, ...)를 사용하면 수정 자 키 (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

crontab 작업을 설정하여이를 수행 할 수 있습니다.

  • 터미널을 열고 입력 crontab -e
  • ivim 편집기의 삽입 모드를 활성화하려면을 누르 십시오.

여기에서 수행하려는 명령을 입력하여 폴더의 모든 파일을 다른 폴더에 복사 할 수 있습니다. 예를 들어, 모든 파일을 복사 할 경우 /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

에 대한 자세한 내용은 crontab을 보면 여기 또는 사용 man crontab.


@PerlDuck으로 바인드 마운트를 사용했을 것입니다. 주어진 쉽고 유지 보수가 쉬운 방법입니다. 폴더를 여러 위치로 동기화하고 첫 번째 폴더의 파일이 매우 크거나 많으면 cronjob을 사용하지 않습니다. 이로 인해 컴퓨터에서 모든 종류의 성능 문제가 발생할 수 있습니다. 우리 회사는이 방법을 사용하여 Dropbox / Drive 동작을 에뮬레이션하고 있으며 파일 크기가 GB에 달하는 많은 파일에 도달 했으므로 솔루션은 더 이상 확장되지 않습니다.
없음

2
이것은 하나가 아닌 두 개의 디렉토리입니다.
분노
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.