스크립트 솔루션
1. 자동 업데이트 라이브러리 뷰
아래의 백그라운드 스크립트를 사용하면 임의의 수의 다른 폴더의 결합 된 내용을 실제로 표시하는 디렉토리를 설정할 수 있습니다.
폴더의 내용 (기존의 심볼릭 링크)은 (결합 된) 소스와 동적으로 동기화됩니다.
작동 원리
스크립트는 "라이브러리"-view의 대상 폴더뿐만 아니라 소스 폴더의 내용을 주기적으로 나열합니다.
- 라이브러리에 없는 소스 폴더에 항목이 있으면 라이브러리에 심볼릭 링크가 생성됩니다.
- 소스 폴더에 존재 하지 않는 라이브러리에 항목이있는 경우 (실제로는 끊어진 링크) 해당 항목이 라이브러리에서 제거됩니다 .
목록을 비교하는 것은 프로그래밍 방식으로 매우 가볍고 리소스가 적습니다. 아래 디렉토리에서 훨씬 빠른 루프로 스크립트를 테스트했으며 단일 디렉토리 레벨에서 약 500 개의 항목을 추가 (눈에 띄지 않는)로드하지 않고 테스트했습니다.
스크립트와 사용법
#!/usr/bin/env python3
import os
import sys
import time
# --- set loop time below (or leave it as it is)
loop = 5
# ---
# don't change anything below
target = sys.argv[1]
sources = sys.argv[2:]
while True:
currlinks = os.listdir(target)
compare = []
for dr in sources:
for f in os.listdir(dr):
compare.append(f)
if not f in currlinks:
# create link
os.symlink(dr+"/"+f, target+"/"+f)
# clean up possible broken links
for link in currlinks:
if not link in compare:
os.remove(target+"/"+link)
# loop time
time.sleep(loop)
- 스크립트를 빈 파일로 복사하여 다른 이름으로 저장하십시오.
library_view.py
대상 디렉토리 에서 스크립트를 테스트하여 첫 번째 인수 로 소스 디렉토리의 다음 디렉토리로 결합 된 디렉토리를 봅니다 ( 예 :
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
이 명령은 폴더의 내용이 표시됩니다 source1
와 source2
의를 virtual_library
.
모두 제대로 작동하면 대시> 시작 응용 프로그램> 추가와 같은 시작 응용 프로그램에 추가하십시오. 다음 명령을 추가하십시오 :
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
노트
언급했듯이 원하는 경우 두 개 이상의 소스 디렉토리를 추가 할 수 있습니다.
2. 수동 버전
어떤 이유로 백그라운드 스크립트를 사용하지 않으려면 아래 스크립트를 사용하여 바로 가기 키에서 정확히 동일한 명령을 사용하여 라이브러리 폴더를 수동으로 업데이트 (동기화) 할 수 있습니다.
#!/usr/bin/env python3
import os
import sys
target = sys.argv[1]
sources = sys.argv[2:]
currlinks = os.listdir(target)
compare = []
for dr in sources:
for f in os.listdir(dr):
compare.append(f)
if not f in currlinks:
# create link
os.symlink(dr+"/"+f, target+"/"+f)
# clean up possible broken links
for link in currlinks:
if not link in compare:
os.remove(target+"/"+link)
시스템 설정> "키보드"> "바로 가기"> "사용자 정의 바로 가기"를 선택하십시오. "+"를 클릭하고 원하는 키 조합을 입력하십시오 :
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
그러나 이것은 아마도 당신이