我有一个文本文件,其中包含多行源代码和目标代码。
示例:
"/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
似乎无法采用相对路径,因此当前所有路径都用引号引起来,并且是绝对路径。
答案 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”。