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

时间:2015-12-26 06:49:55

标签: macos terminal

运行OSX 10.11.2,我需要rm -rf文件在下面的符号链接中指示的位置,用于atom,npm和node以及链接。我目前以用户身份登录,但终端处于su模式 我尝试了几个命令无济于事。我试着去那些地方,但不知道怎么做。

enter image description here

谢谢

1 个答案:

答案 0 :(得分:0)

首先,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