Kuruluş modu bir dosya tüm eklerle birlikte nasıl taşınır?


21

Ben mesela birkaç dosyaları var file-1.org, file-2.orgpaylaşmak aynı dizinde data/ekleri için dizin.

file-1.orgFarklı bir yere gitmek data/, o konumda yeni bir dizin oluşturmak ve yeni dizine ait tüm ekleri taşımak istiyorum file-1.org. Bunu yapmanın otomatik bir yolu var mı?


1
Kulağa faydalı geliyor, ancak var görünmüyor. En basit seçenek, dosyaları doğrudan taşımak ve ardından org-attach-syncyeni öğeyle eşitlemek için kullanmak olabilir.
glucas,

1
Belki de bağlantılı dosyaları taşımak iyi bir fikir değildir. Veri klasöründeki dosyalara, bu dosyalar kaybolduğunda bağlantıların koptuğu diğer org dosyalarına referans verilebilir. Oh hayır, böyle bir org dosyası yok ... daha önce hiç düşünmediğiniz özel durumda kırılan bağlantıları fark edinceye kadar ;-). Belki de, kopyalamak daha iyi bir alternatiftir. Ya da en azından en belirgin vakaları aramanız gerekir (örneğin, aynı klasördeki bağlantıları olan org dosyaları).
Tobias,

1
Kuruluş dosyaları git gibi bir sürüm kontrol sistemi tarafından yönetiliyor mu? Git'teki bir org dosyasına ek eklediğimde, ekler otomatik olarak depoya yüklenir.
Melioratus

org-lint, bozuk linkleri bulmanıza yardımcı olabilir
alvaro

Yanıtlar:


1

Bu komut ne istersen yapabilirdi:

find -E data -type f -iregex ".*($(cat file-1.org | grep -i ':id:' | perl -pe 's/^\s*:id:\s*(\w{2})([\w-]+)$/$1\\\/$2/i' | paste -s -d'|' -)).*" -exec rsync -R '{}' ~/temp/my-new-directory \;

Değiştir file-1.orgekleri size ve taşımak istediğiniz org dosyası ile ~/temp/my-new-directoryyeni dizinin konumu ile. dataEk dosyalarının içinde bulunduğu bir dizin oluşturulacaktır (kopya yerine taşımak istiyorsanız --remove-source-files, rsynckomuta geçin ).

Bu macOS'ta test edildi. -EBayrağı diğer platformlarda atlamak zorunda kalabilirsiniz .

NOT: Lütfen bunu dosyalarınızın bir kopyasında yapın . Emacs konusunda uzman değilim, org-mode eklerini hiç kullanmadım ve bu tür bir sahte dosya işleme kullanmakta deneyimli değilim. Bu, org modu klasörünüzü unutmaya neden olabilir, bu nedenle ilk önce onu yedekleyin.


0

Marcel Samyn'in cevabına dayanarak, aşağıdaki senaryo benim için ArchLinux altında çalıştı:

find data -regextype awk -type f -iregex ".*($(cat file-1.org | grep -i '^:id:' | perl -pe 's/^\s*:id:\s*(\w{2})([\w-]+)$/$1\/$2/i' | paste -s -d'|' -)).*"  -exec rsync -R '{}' ~/temp/my-new-directory \;

Kopyalanacak dosyaların listesini almak için aşağıdaki azaltılmış betiği kullanın:

find data -regextype awk -type f -iregex ".*($(cat file-1.org | grep -i '^:id:' | perl -pe 's/^\s*:id:\s*(\w{2})([\w-]+)$/$1\/$2/i' | paste -s -d'|' -)).*"

Olmadan ^grep komutu, ben içeren e-posta bağlantılardan yanlış pozitif var ": id:".

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.