【问题标题】:shell script for replacing some files with symlinks用于用符号链接替换某些文件的 shell 脚本
【发布时间】:2008-12-13 16:27:12
【问题描述】:

有些服务器只支持ftp上传文件。

当我将项目从我的 subversion 存储库导出到我的 windows 机器时,所有 (linux) 符号链接都被占位符文件替换:

链接 ../www_public/images

上传我现在使用的所有导出文件后

查找 | xargs grep -P ^link

找到所有这些占位符。然后我手动将它们替换为实际的符号链接。

我真的很想用 shell 脚本自动执行此步骤。
我该怎么做?

注意:
如果这个问题有更好/不同的解决方案,请不要犹豫分享:)

【问题讨论】:

    标签: svn ftp shell


    【解决方案1】:

    这是一种可能的解决方案:

    :
    grep -lr '^link' . | while read placeholderfile
    do
      linkfile=`cut -c6- "$placeholderfile"`
      ln -sf "$linkfile" "$placeholderfile"
    done
    

    编辑: 更改了上面 w.r.t 的代码。下面的cmets。

    【讨论】:

    • 最好使用 cut -c6- (路径可能有空格)。另外,我不明白你的 ln 声明。我期望像 ln -s "pwd/$linkfile" "$placeholderfile" 这样的东西。 (并且可能删除 rm 并使用 ln -sf。)这也可能是因为我对问题的解释不同。
    • 我不确定占位符文件与链接文件同名。可能是真的,但我没有假设。
    • 是的,占位符文件的名称是符号链接的名称,与目标名称相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    相关资源
    最近更新 更多