是否有UNIX取消引用符号链接的命令?我想用它指向的文件的副本替换链接。
例子:
$ ls
a
b -> a
$ deref b
$ ls
a
b
Run Code Online (Sandbox Code Playgroud)
现在,a 和 b 具有相同的内容但彼此独立。我的问题是是否有这样的deref命令。重要提示:我不必知道b指向哪里;命令应该弄清楚这一点。
Rom*_*aka 10
您可以使用readlink找出文件名,但您不必这样做!
cp b c
mv c b
Run Code Online (Sandbox Code Playgroud)
就这么简单。如果您正在编写脚本来执行此操作,您应该使用的输出mktemp而不是c确保您不会覆盖已经存在的文件
c。
小智 5
结合这两个答案得出以下结论:
#!/bin/bash
if [ -h "$1" ] ; then
target=`readlink $1`
rm "$1"
cp "$target" "$1"
fi
Run Code Online (Sandbox Code Playgroud)