Dropbox에서 심볼릭 링크는 어떻게 작동합니까?


20

폴더의 파일에 대한 링크를 만들었습니다. 해당 폴더를 Dropbox에 추가하면 링크에 연결된 파일의 사본이 중복되었습니다. 이 문제가 있었습니까? 무슨 일이 일어나고 있는지 이해합니까? 해결책이 있습니까?

이 질문을 명확하게하기 위해 : 파일 관리자의 "유형"열에서 Dropbox에 연결하기 전에 Link_to_notes가 링크로 표시되었고 크기는 32 바이트였습니다. Dropbox에 연결 한 후 Link_to_notes는 일반 텍스트 문서로 표시되었으며 크기는 노트 파일의 크기 인 18.7kB였습니다.


2
Dropbox가 크로스 플랫폼 솔루션이기 때문에 다른 모든 동작이 더 혼란 스러울 수 있습니다. 폴더를 Windows 시스템과 동기화하면 어떻게 작동합니까?
Sergey

2019 년 중반부터 Dropbox는 더 이상 심볼릭 링크를 따르지 않습니다
eri0o

현재 글을 쓰는 시점에서 심볼릭 링크는 더 이상 작동하지 않으며 짜증납니다.
Jus12

답변:


15

DropBox는 심볼릭 링크를 따라 디렉토리로 취급합니다. 파일과 디렉토리를 DropBox 디렉토리로 이동하지 않고 백업 할 때 정말 유용합니다.

$ ln -s ~/Documents/ ~/Dropbox/Documents

이것은 위험한 행동 일 수 있습니다. 예를 들어 Dropbox 디렉토리에서 링크를 삭제하면 실수로 원본 파일이나 폴더를 삭제하는 시나리오가 있습니까?
Vicon

@Vicon, 그것은 위험한 행동이 아니며, 예상되는 행동입니다. 그러나 그렇습니다. 분명히, 심볼릭 링크를 제거하면 파일이 Dropbox에서도 제거됩니다.
Gregology

2
Dropbox 커뮤니티에서는 Dropbox가 심볼릭 링크를 지원하지 않으며이를 사용하지 않는 것이 좋습니다. Dropbox 고객 지원에 문의하면 계속 진행하기 전에 모든 심볼릭 링크를 제거하라는 메시지가 표시됩니다. 물론 사람들은 여전히 ​​그것을 사용할 수 있지만 이것은 Dropbox가 의도 한 동작이 아니며 위험 할 수 있습니다 (파일을 잃어 버림), 문제가 있습니다 (의도적으로 복제 된 파일이 동기화되어이 문제에서 해결하도록 요청 된 문제임). 성능 문제 등 동기화
Vicon

@Vicon, 심볼릭 링크는 많은 작업에서 투명하게 작동합니다. 심볼릭 링크로 명명 된 파일을 읽거나 쓰는 프로그램은 대상 파일에서 직접 작동하는 것처럼 작동합니다.
Gregology

1
이 방법은 ext4 파일 시스템에서 오랫동안 잘 작동했습니다. Dropbox 내에서 Dropbox 파일과 상호 작용하지 않기 때문에 위험이 없습니다. Linux 시스템과 Android 태블릿을 성공적으로 연결합니다. 그러나이 링크에서 내 조언이 오래 되었다고 표시
pauljohn32

7

가장 좋은 방법은 파일을 보관 용 폴더에 저장하고 외부에서 심볼릭 링크하는 것입니다.

~ / Dropbox / Documents 및 symlink를 만듭니다.

ln -s ~/Dropbox/Documents ~/Documents

그러면 dropbox가 혼란스러워지고 내부에있는 모든 것이 있기 때문에 링크 박스에있는 모든 것을 연결 해제합니다. 대신 다른 곳에서 드롭 박스에서 링크하기를 원할 때. 기본 규칙은 dropbox 폴더 내부에 심볼릭 링크가 없으며 dropbox 폴더 외부에 심볼릭 링크가 없어도 아무런 문제가 없다는 것입니다.

여러 우분투 컴퓨터에 dropbox가 있고 모든 주요 최상위 폴더가 실제로 dropbox에 저장되어 있습니다.


Dropbox가 왜 혼란 스러울까요? Dropbox는 어떻게 심볼릭 링크를 변경합니까? 심볼릭 링크는 파일 시스템에 의해 자동으로 해결됩니다.
Gregology

6

dropbox는 디렉토리에 대한 sym 링크를 따르지만 파일에 대한 링크 (sym 또는 hard)를 끊고 파일로 바꿉니다.


2

TL; DR : 아래는 GUI (그래픽 사용자 인터페이스) 수준에서만 심볼릭 링크와 매우 유사한 동작을 수행하는 방법입니다. DropBox가 동일한 파일을 DropBox 내의 다른 폴더에 반복적으로 복사 하지 않으려 경우 특히 유용합니다. 계층 구조는 다른 위치 (예 : 폴더 경로)에서 보려고하기 때문입니다.

배경

DropBox 폴더 계층 내에서 심볼릭 링크 (심볼릭 링크)를 만들거나 심지어 계정을 채우는 지점까지 폴더를 복제하면 DropBox에서 폴더를 두 번 이상 불태 웠습니다. 많은 사람들이 웹에서 언급했듯이 DropBox의 심볼릭 링크를 제대로 처리하지 못한다는 실질적인 해결책은 없습니다. 불행히도 그렇게하기는 어렵습니다.

해결 방법

그러나 DropBox 계층 구조 내에서 심볼릭 링크의 동등한 동작을 달성하기 위해 사용하는 한 가지 해결 방법 --- 다른 것들이 종종 "내부 심볼릭 링크"라고 부르는 것 --- DropBox가 모든 것을 복제하지 않으면 Windows 바로 가기 파일에 해당하는 파일을 만드는 것입니다. MS 에코 시스템의 .lnk 파일). 시스템의 파일 관리자를 원하는 경로로 여는 .desktop 파일을 작성하면됩니다. 따라서이 해결 방법은 GUI 수준에서만 작동하며 XDG 호환 시스템 (예 : 우분투, 그놈 기반 시스템 등)에서만 작동합니다.

예를 들어, 내가 취하고있는 새로운 직업에 대한 고급 Python 기술에 대해 읽고 있는데, 읽고있는 PDF는 GoodReader 앱 (iOS)의 DropBox 폴더에 저장되어 데스크탑에서 모두 읽을 수 있습니다. 그리고 내 모바일 장치와 함께. 해당 폴더 ( /home/morse/lib/active/GoodReader/Books/Python) 로 드릴 다운하는 대신 간단히 다음 내용으로 Python.desktop폴더 를 만듭니다 /home/morse/Desktop.

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Name=Python
Exec=nautilus /home/morse/lib/active/GoodReader/Books/Python
Icon=/usr/share/icons/MacBuntu-OS/places/96/stock_folder.png
Terminal=false

(참고 : 적응해야 Exec=nautilus ...당신이 노틸러스 이외의 파일 관리자를 사용하는 경우 일부를, 물론 당신은 적응하기를 원할 것입니다 Name=, Icon=의, 및 경로 부분을 Exec=각각 "심볼릭 링크"를 만들려을위한 라인을.)

이를 통해 데스크탑에 Python이라는 폴더가 심볼릭 링크처럼 작동합니다. 즉, 두 번 클릭하면 적절한 폴더가 열리지 만 작은 텍스트 파일 (예 : Python) 만 열립니다. 데스크톱)은 DropBox 및 다른 시스템과 동기화됩니다 (DropBox에 의해 모든 내용이 결국 어디서나 복제되는 것과 대조적으로).

다른 .desktop 파일과 마찬가지로 , 표시된 아이콘이 표시되고 실제로 어떤 작업을 수행하기 위해 파일을 두 번 클릭 할 수 있도록 파일을 읽을 수 있고 실행 가능하도록 (예 : chmod 700 Python.desktop또는 chmod 755 Python.desktop) 권한을 설정해야합니다 .

개요

요약하자면, 항상 DropBox 내에서 실제 파일을 사용할 수있을 것입니다.이 예에서는 /home/morse/lib/active/GoodReader/Books/Python--- 모든 Linux 기반 시스템에서 데스크탑 "바로 가기"를 사용합니다. DropBox도 구성되어 있습니다.

물론이 해결 방법은 실제 심볼릭 링크처럼 명령 줄 수준에서는 작동하지 않습니다.

그러나 이것은 GUI 수준에서 새로운 대안으로 보이지만 다른 곳에서는 게시하지 못했습니다. 따라서이 접근법이 다른 사람들에게 유용 할 수 있기를 바랍니다.


이것은 천재입니다! 지금까지 내부 심볼릭 링크에 대한 솔루션을 보지 못했습니다! 그리고 이것은 매우 깔끔합니다. 내 하루를 주셔서 감사합니다! 디렉토리에 직접 "cd"할 수는 없지만 .desktop 파일을 구문 분석하고 링크 된 파일이나 폴더를 여는 명령 줄 스크립트를 작성하는 것은 매우 간단해야합니다.
Praveen

0

링크를 압축하고 압축 파일을 Dropbox에 저장

이전 답변은 철저하고 명확합니다. 하나의 원칙에 따라 세 가지 해결 방법을 제안합니다. 세 번째는 더 어려워 보이지만 매우 효율적입니다. 아이디어는 심볼릭 링크를 tar 파일로 압축하여 Dropbox가 링크로 취급하지 않고 Dropbox에 저장한다는 것입니다. 세 번째 방법은 링크를 Dropbox에 직접 복사하는 것만큼이나 직접적입니다. 실제로 여러 링크를 하나씩 복사하는 것보다 훨씬 빠릅니다.

Dropbox에 저장된 bash 스크립트, 외부 hdd, 자주 사용하는 문서 등에 빠르게 액세스하기 위해 Lubuntu 설치에 일반적으로 사용하는 약 20 개의 심볼릭 링크가 있습니다. 모두 홈 디렉토리와 데스크탑에 있습니다. 다른 설치에 사용하거나 dist-upgrade 할 때 (즉, dist-upgrade를 시도한 후 다시 설치할 때) Dropbox 사본을 보관하는 것이 편리합니다.

첫번째 방법

문서에서 MyLinks라는 디렉토리를 만들고 모든 홈 심볼릭 링크를 복사합니다. 다른 디렉토리에 심볼릭 링크가 있으면 MyLinks에 하위 디렉토리를 만들고 심볼릭 링크를 복사하십시오. 예를 들어, 저장하려는 링크가 집과 데스크탑에있는 경우 홈 링크를 MyLinks에 복사하고 데스크탑에 dir을 작성하고 데스크탑 링크를 복사하십시오. 그런 다음 터미널, cd Documents (MyLinks가있는 디렉토리 인 경우)를 열고 tar 파일을 작성하십시오.

tar -cvf MyHomeLinks.tar MyHomeLinks

tarfile 이름에 ".tar"확장자를 추가해야합니다. 그렇지 않으면 Ubuntu Archive Manager가이를 열지 않습니다. 이렇게하면 tar -h (--dereference) 옵션을 tar에 추가하지 않도록주의하십시오. Dropbox처럼 정확하게 작동 하고 심볼릭 링크 대신 대상 파일을 압축합니다 . (이런 식으로, 대부분의 경우, 예를 들어 이식성을 목표로하지만 심볼릭 링크를 심볼릭 링크로 저장하려는 경우는 아닙니다.)

tar 파일에는 현재 마운트되지 않은 외부 hdd에 대한 링크와 같이 일시적으로 손상된 링크도 포함됩니다.

tar 파일을 Dropbox에 저장하십시오. 링크가 다시 필요할 때 tar 파일을 파일 시스템의 디렉토리 (Dropbox가 아닌)에 복사하고 압축을 풀고 (오른쪽 클릭하고 "여기에서 추출"을 선택하십시오) 심볼릭 링크를 원하는 위치로 다시 복사하십시오. .

두 번째 방법

저장하려는 심볼릭 링크에 고유하지 않은 접두어 (예 : "MySl"...)가 있으면 tarfile을 이런 식으로 매우 빠르게 만들 수 있습니다 (실수를 방지하기 위해 불필요한 공백이 추가됨).

find   .   -name   "MySl*"|xargs  tar  cvf  MyLinks.tar

"찾기"다음의 단일 점은 현재 디렉토리를 의미합니다. 기본적으로 홈 디렉토리에서 터미널을 엽니 다. tar 파일의 경로를 반드시 추가 할 수 있으며 홈이 아닌 다른 디렉토리에서 명령을 실행할 수 있습니다 : "." 집 / 사용자의 경로와 함께. 위의 MyLinks로 작업 디렉토리를 만들 필요가 없습니다. 심볼릭 링크를 복원하는 것도 빠릅니다. tarfile을 집에 복사하고 마우스 오른쪽 단추를 클릭 한 다음 "여기에서 추출"을 클릭하십시오. 그러나 모든 심볼릭 링크의 접두사를 시작하기 전에 다음 옵션을 살펴보십시오.

세번째 방법 (그리고 최고)

tar 파일로 모든 심볼릭 링크를 수집하는 가장 빠른 방법은 다음과 같습니다. 집 / 사용자에서 터미널을 열고 (이는 터미널을 열 때 기본값 임) 다음과 같습니다.

find  .  -type  l|xargs  tar  -cvf  AllLinks.tar

단점은, 당신이 알지도 못했던 일부 mozilla 또는 hplip symlink를 포함하여 모든 링크를 얻는다는 것입니다. 이를 피하고 재귀없이 지정된 디렉토리 목록에서 모든 심볼릭 링크 만 복사하려면 위 명령에서 "find"뒤에 목록을 작성하십시오. 가정 / 사용자 및 데스크탑의 링크를 저장한다고 가정하십시오. 당신은 쓸 수 있습니다

 find /home/<USER>/ /home/<USER>/Desktop/ -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

"-maxdepth 1"은 찾기가 집을 통해 되풀이되는 것을 방지하는 것입니다. 원하는 경우 tarfile에 경로를 추가 할 수 있습니다. 또는

 find .  Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

게으르고 이것을 자주 사용하려면 홈 디렉토리의 .bashrc 또는 .bash_aliases에 별칭으로 추가 할 수 있습니다 (.bash_aliases는 별칭을 수집하는 데 매우 편리한 방법입니다. 드롭 박스...). 홈 디렉토리에 .bash_aliases라는 새 빈 파일 (즉, / home / user)을 작성하고 텍스트 편집기로 열고 다음 행을 작성하십시오.

alias save_symlinks='find . Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar'

"find"뒤에있는 디렉토리를 선택한 디렉토리로 바꾸고 "save_symlinks"를 선택한 명령 이름으로 바꾸십시오. 복원하려면 파일 관리자를 열고 (위 명령의 디렉토리 경로가 절대 경로가 아닌 경우 tar 파일이 홈 / 사용자 여야 함) 마우스 오른쪽 단추를 클릭하고 추출하십시오.

이렇게하면 인생이 더 쉬워집니다. 당신이해야 할 일은 :

SAVE : 터미널에 save_symlinks를 입력하고 tarfile을 가정에 Dropbox에 저장하십시오. 복원 : Dropbox에서 홈 디렉토리로 파일을 복사하고 마우스 오른쪽 버튼으로 클릭하고 "여기에서 추출"을 선택하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.