代码之家  ›  专栏  ›  技术社区  ›  Fred J.

来自符号链接的OSX终端rm-rf文件

  •  0
  • Fred J.  · 技术社区  · 9 年前

    运行OSX10.11.2时,我需要在下面的符号链接中指定的位置rm-rf文件,用于原子、npm和节点以及链接。我目前以用户身份登录,但终端处于su模式。
    我试了几次命令都没有用。我试着去那些地方,但不知道怎么去。

    enter image description here

    非常感谢。

    1 回复  |  直到 9 年前
        1
  •  0
  •   Thomas Dickey    8 年前

    首先, rm 它本身没有一个合适的选项来删除链接指向的文件。这将使得在单个命令中执行此操作变得很麻烦。脚本有助于:

    #!/bin/sh
    for name in "$@"
    do
        if [ -L "$name" ]
        then
            target=$(stat -f '%Y' "$name")
            $0 "$target"
        fi
        [ -e "$name" ] && rm -rf "$name"
    done
    

    脚本使用OSX stat 命令获取链接目标,并递归到自身,以删除目标(可能是另一个链接),在删除目标后,删除链接(或非链接,视情况而定)。

    OP在评论中澄清,链接本身不应删除。这可以通过更改测试来完成:

    #!/bin/sh
    for name in "$@"
    do
        if [ -L "$name" ]
        then
            target=$(stat -f '%Y' "$name")
            $0 "$target"
        fi
        [ -e "$name" ] && [ ! -L "$name" ] && rm -rf "$name"
    done