为了在 Linux 文件上运行 Code dx,我需要将所有链接替换为实际文件。已经很多年没有在 Linux 中工作了,我对术语感到困惑。这两天一直在寻找答案。有一个简单的脚本吗?我有 2500 万行代码。
原始目录:afile bfile clink_to_cfile_in_another_dir(可能遍历多个链接)
期望的最终结果:afile bfile cfile
我已经做到了这一点,但还不太有效:
find . -type l -exec "echo 'replacing {}'; cp -LR '{}' '{}'.deref rm '{}' \;"
答案1
有几个问题
- 需要
\;
在引号之外,它是 exec 的一个单独的参数 ;
你在最后的 rm 命令之前缺少了一个- exec 将尝试将整个命令作为一个命令运行。
要运行这样的多个命令,您可以执行 shell 并将脚本传递给它
find . -type l -exec /bin/bash -c "echo 'replacing {}'; cp -LR '{}' '{}.deref' ; rm '{}'" \;
似乎有效。