如何自动基于文件建立符号链接?

时间:2020-08-29 04:54:51

标签: bash unix

我有一个文本文件,其中包含多行源代码和目标代码。

示例:

"/home/desktop/aaa t" "/home/desktop/bbb"
"/home/desktop/ee e" "/home/desktop/aa/rr r"

我已经尝试过了: cat ../symlinks.txt | xargs -i{} -d\n ln -s {},但似乎已被打破,ln似乎并不喜欢。

我需要创建许多从文件到目标路径的符号链接,这些符号链接到源代码。我将如何使用bash做到这一点?由于ln似乎无法采用相对路径,因此当前所有路径都用引号引起来,并且是绝对路径。

1 个答案:

答案 0 :(得分:4)

考虑使用'-L1',而不是使用'-I',它将整个输入行作为单个参数传递,这将使用默认的xargs单词拆分,它将支持引号,并且反斜杠。

xargs -L1 ln -s < ../symlinks.txt

来自xargs个人:

... xargs从标准输入中读取由空格(可以用双引号或单引号或反斜杠保护)或换行符分隔的项目...

有关相对路径的注意事项: ln没有理由不能与相对符号链接一起使用。尝试以下

echo '"a b" c' | xargs -L1 ln -s

这将在当前文件夹中创建一个符号链接“ c”到(不存在的)文件“ a b”。