我想像这样取消符号链接:
unlink *
然而它说unlink: extra operand
我只想删除链接文件,保留原始文件。
答案1
使用“*”您正在尝试取消链接当前位置下的所有文件和目录。
unlink 不能处理文件或目录,它只能处理链接,使用 find 命令查找所有链接并取消链接,如下所示:
find . -type l -exec unlink {} \;
答案2
我会避免使用 生成其他进程find … -exec …
。当你需要unlink
或rm
的结果时find
,使用它的-delete
选项。
find . -maxdepth 1 -type l -delete
此命令将查找当前目录中的所有符号链接-type l
(不在子目录中;您*
不会下降到子目录,因此我认为这是您想要的)并删除它们。默认行为是不遵循符号链接,因此原始文件不会受到影响。
答案3
此命令将查找并删除当前文件夹中的所有符号链接,它不会递归到子文件夹,并且它将忽略点文件
find . -maxdepth 1 -type l ! -name '.*' -delete