スクリプトによる解決策
1.自動的に更新されるライブラリビュー
以下のバックグラウンドスクリプトを使用すると、ディレクトリを設定して、任意の数の他のフォルダーのコンテンツの組み合わせを仮想的に表示できます。
フォルダーのコンテンツ(シンボリックリンクの存在)は、(結合された)ソースと動的に同期されます。
使い方
このスクリプトは、定期的にソースフォルダーのコンテンツと「ライブラリ」ビューのターゲットフォルダーを一覧表示します。
- ライブラリに存在せず、いずれかのソースフォルダーにアイテムがある場合、シンボリックリンクがライブラリに作成されます。
- アイテムがライブラリ内に存在する場合、いないソースフォルダ(実際には壊れたリンク)のいずれかに存在、項目がされて削除ライブラリから。
リストを比較すると、(プログラム的に)非常に軽量で、リソースが少なくなります。以下のスクリプトよりもはるかに高速なループでスクリプトをテストしました。単一のディレクトリレベルに約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つ以上のsoureディレクトリを追加できます。
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
が、これはあなたが後にしているまさにおそらくではありません...