答案1
请参阅文档曼林。
您使用了第三种形式
ln [OPTION]... TARGET... DIRECTORY
这将为所有人创建链接目标进入目录。
您的命令已为 中的所有文件和目录(以及其他对象(如果有))创建(或尝试创建)链接/home/orca/www
,但如果该名称已存在于 中,则对于其中一些人来说可能会失败/var
。 (在这种情况下,您的命令可能会打印错误消息。)
由于/var
通常不为空,因此您不能简单地删除所有内容。
我现在能建议的最好办法是删除/home/orca/www
from中存在的所有名称/var
(如果它是符号链接)。
此循环将显示将删除的内容:
for i in /home/orca/www/*
do
l=/var/"${i##*/}"
if [ -h "$l" ]
then
echo rm "$l"
fi
done
检查输出。如果这是您想要的,请删除echo
来真正执行rm
命令。
for i in /home/orca/www/*
do
l=/var/"${i##*/}"
if [ -h "$l" ]
then
rm "$l"
fi
done
答案2
和zsh
,
rm /var/*(@m-1)
/var
将删除过去 24 小时内创建的所有符号链接。
尽管:
rm /var/*(@m-1e['[[ $REPLY:P = /home/orca/www/* ]]'])
将删除过去 24 小时内创建的所有符号链接真实路径(规范绝对路径)与模式匹配(如果、或其中的任何文件本身有符号链接,则/home/orca/www/*
无法正常工作)。/home
/home/orca
/home/orca/www
(如果您只想在删除文件之前查看列表,请替换rm
为)。ls -ld
使用 GNU find
,您还可以执行以下操作:
find /var -maxdepth 1 -mtime -1 -lname '/home/orca/www/*' -delete
删除/var
过去 24 小时内创建的目标与/home/orca/www/*
模式匹配的所有符号链接。
(如果您想在删除文件之前查看列表,请替换-delete
为)-ls