如何取消目录下的所有符号链接?

如何取消目录下的所有符号链接?

我想像这样取消符号链接:

unlink *

然而它说unlink: extra operand

我只想删除链接文件,保留原始文件。

答案1

使用“*”您正在尝试取消链接当前位置下的所有文件和目录。

unlink 不能处理文件或目录,它只能处理链接,使用 find 命令查找所有链接并取消链接,如下所示:

find . -type l -exec unlink {} \;

答案2

我会避免使用 生成其他进程find … -exec …。当你需要unlinkrm的结果时find,使用它的-delete选项。

find . -maxdepth 1 -type l -delete

此命令将查找当前目录中的所有符号链接-type l(不在子目录中;您*不会下降到子目录,因此我认为这是您想要的)并删除它们。默认行为是不遵循符号链接,因此原始文件不会受到影响。

答案3

此命令将查找并删除当前文件夹中的所有符号链接,它不会递归到子文件夹,并且它将忽略点文件

find . -maxdepth 1 -type l ! -name '.*' -delete

相关内容