【问题标题】:Create symlink with existing directory structure in new location在新位置使用现有目录结构创建符号链接
【发布时间】:2019-11-13 16:53:19
【问题描述】:

我正在使用

find source -name 'Archive.folder'

哪个输出:

source/1/Archive.folder
source/2/Archive.folder
...

在源文件夹中查找所有名为 Archive.folder 的文件夹。现在我想将它们链接到一个新位置 /var/CommuniGate/Accounts。我怎样才能做到这一点? 我找到了以下解决方案,但它不起作用,它只是链接源文件夹,而不是找到的文件夹。

find source -name 'Archive.folder' | xargs -0 ln -s -t /var/CommuniGate/Accounts

符号链接应该这样创建:

/var/CommuniGate/Accounts/source/1/Archive.folder
/var/CommuniGate/Accounts/source/1/Archive.folder
...

【问题讨论】:

    标签: bash shell find ln


    【解决方案1】:

    可能是这样的:

    find source -name Archive.folder -print0 |
    xargs -0 -iDIR sh -c 'mkdir -p /var/CommuniGate/Accounts/$(dirname DIR); ln -s -t /var/CommuniGate/Accounts/$(dirname DIR) $PWD/DIR' 
    

    这适用于我的简单测试用例。

    【讨论】:

    • 我在第一个文件之后收到ln: failed to create symbolic link 'test/Archive.folder': File exists 。它无法复制源中的文件夹结构。否则它似乎工作。
    • 我的示例中似乎忽略了 1,2,3,.. 文件夹。
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 2017-11-24
    • 1970-01-01
    • 2010-11-17
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多