【发布时间】:2020-03-14 20:43:58
【问题描述】:
我在/var/CommuniGate/Accounts/*/ 中有很多名为Archive.folder 的文件夹。如何将它们移动到新位置并在旧文件夹中留下指向新位置的符号链接?
也许使用 find 和 cp 来移动它们?
find /var/CommuniGate/Accounts/ -name 'Archive.folder' -exec cp -r --parents {} . \;
这适用于移动它们并保持文件夹结构。但是怎么能和ln同时留下一个链接呢?该链接也应替换旧文件夹。
我尝试过执行以下操作,如果只有一个文件夹,它就可以工作。
find /var/CommuniGate/Accounts/ -name 'Archive.folder' -delete
find * -name 'Archive.folder' | xargs -0 -iDIR sh -c 'mkdir -p /$(dirname DIR); ln -s -t /$(dirname DIR) $PWD/DIR'
我得到permission denied 用于sh -c 用于第一个目录之后的所有内容。
【问题讨论】: