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