rm 删除目录、任何符号链接和符号链接目的地?

rm 删除目录、任何符号链接和符号链接目的地?

我有两个目录:/all/origins/& /all/links/

in 中的所有内容都links/单独指向 in 中的某些内容origins/,但并非 in 中的所有内容origins/都相互关联links/。 (正方形、矩形和分类层次结构,明白了吗?)这些是符号链接 ( ln -s),而不是硬链接。

1. 中的所有内容links/都需要删除,以及 2. 中的符号链接目标origins/(不知道它们是否在 中origins/)和 3.links/目录本身。

什么rmUnix命令我应该输入以删除整个links/目录和符号链接到的任何符号链接目的地origins/吗?

我正在寻找类似的东西:rm -R /all/linksrm -r --follow-all-ln /all/links

如果rm带参数的命令无法完成这项工作,请明确说明,因为这是我的偏好并且隐含在标题中(Unix 和 Linux 可以通过rm不循环来完成此操作do吗? -仅有的如果这不起作用,请说明并解释什么do循环。)

答案1

首先备份您的数据,以防出现问题。

我的理解是,您要删除目录的所有内容/all/links/以及该目录内的链接所指向的文件。

无法像您所希望的那样使用简单的 Unix 命令来执行此操作,但可以使用简单的脚本来执行此操作。

#!/bin/bash

for i in /all/links/*
do
rm  "$(readlink -f $i)"
rm "$i"
done

rmdir /all/links

正如您所说,里面的所有文件/all/links/都是符号链接,因此不需要检查每个值i是否是链接。

相关内容