Cette commande pourrait faire ce que vous voulez:
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 \;
Remplacez-le file-1.org
par le fichier org dont vous souhaitez déplacer les pièces jointes et ~/temp/my-new-directory
par l'emplacement de votre nouveau répertoire. Un data
répertoire sera créé avec les fichiers joints en eux (si vous souhaitez déplacer au lieu de copier, passez --remove-source-files
à la rsync
commande).
Cela a été testé sur macOS. Vous devrez peut-être omettre l' -E
indicateur sur d'autres plates-formes.
REMARQUE: veuillez le faire sur une copie de vos fichiers . Je ne suis pas un expert en emacs, je n'ai jamais utilisé de pièces jointes en mode org et je n'ai pas l'habitude d'utiliser ce type de manipulation de fichiers hacky. Cela pourrait faire sauter votre dossier en mode org dans l'oubli, sauvegardez-le d'abord.
org-attach-sync
pour les synchroniser avec le nouvel élément.