모든 첨부 파일과 함께 조직 모드 파일을 이동하는 방법은 무엇입니까?


21

나는 예를 들어 두 파일을 가지고 file-1.org, file-2.org공유 같은 디렉토리에 data/첨부 파일 디렉토리.

file-1.org다른 위치 로 이동 하고 data/해당 위치에 새 디렉토리를 만들고 새 디렉토리에 속하는 모든 첨부 파일 을 이동하고 싶습니다 file-1.org. 이를 수행하는 자동 방법이 있습니까?


1
유용한 것 같지만 존재하지 않는 것 같습니다. 가장 간단한 옵션은 파일을 직접 이동 한 다음 org-attach-sync새 항목과 동기화하는 데 사용할 수 있습니다.
glucas

1
링크 된 파일을 이동하는 것은 좋은 생각이 아닙니다. 데이터 폴더의 파일은 이러한 파일이 사라지면 링크가 끊어지는 다른 조직 파일에서 참조 될 수 있습니다. 오, 아니, 그런 조직 파일이 없습니다 ... 당신이 전에 생각하지 않은 특별한 경우에 끊어진 링크를 알게 될 때까지 ;-). 아마도 복사가 더 나은 대안 일 것입니다. 또는 가장 명백한 사례를 검색해야합니다 (예 : 동일한 폴더에 링크가있는 org 파일).
Tobias

1
org 파일은 git과 같은 버전 제어 시스템으로 관리됩니까? git의 org 파일에 첨부 파일을 추가하면 첨부 파일이 자동으로 저장소에 커밋됩니다.
Melioratus

org-lint가 깨진 링크를 찾는 데 도움이 될 수 있습니다
alvaro

답변:


1

이 명령은 원하는 것을 할 수 있습니다.

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 \;

대체 file-1.org누구의 첨부 파일 당신이, 그리고 이동하려는 조직 파일을 ~/temp/my-new-directory새 디렉토리의 위치. data(당신이 대신 사본의 이동 전달하려면 디렉토리는 그들에 첨부 파일로 생성됩니다 --remove-source-files받는 rsync명령).

이것은 macOS에서 테스트되었습니다. -E다른 플랫폼 에서는 플래그 를 생략해야 할 수도 있습니다 .

참고 하시기 바랍니다 에 이렇게 파일의 사본 . 저는 이맥스 전문가가 아니며, org-mode 첨부 파일을 사용한 적이 없으며 이런 종류의 해키 파일 조작에 익숙하지 않습니다. 이것은 org-mode 폴더를 망각으로 날려 버릴 수 있으므로 먼저 백업하십시오.


0

Marcel Samyn의 답변을 바탕으로 다음 스크립트가 ArchLinux에서 작동했습니다.

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 \;

다음 축소 스크립트를 사용하여 복사 할 파일 목록을 얻으십시오.

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'|' -)).*"

^grep 명령이 없으면 ": id :"가 포함 된 이메일 링크에서 오 탐지를 얻었습니다.

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