删除无限嵌套目录

删除无限嵌套目录

首先我要说的是,这是我正在使用的 Mac 终端。不是 Linux,但我想我会在这里得到最好的答案,因为它与 Unix 和命令行有关,而与 Mac 本身无关。

无论如何,问题就在这里。为了变得非常懒,我尝试在 ~/.bashrc 中编写一个函数,该函数可以让我进入“作业”文件夹,创建一个包含今天日期的文件夹,进入该文件夹,然后使用给定的命令打开 vim文件名...一口气完成。它看起来像……

export DATE="$( date +%d-%b )"
function hw() {
  cd ~/Java/Programs/HW
  mkcd $DATE
  vim "$*"
}

mkcd 是一个创建文件夹并同时移入其中的函数。这就是我的函数现在的样子,并且运行得很好。然而,在我多次尝试完成这项工作时,我犯了一个非常非常愚蠢的错误,并最终导致我的 mkcd 部分出现某种无限循环......仍然不确定我是如何管理这个的,而且我已经删除了该代码。好吧,当我这样做时发生的事情非常明显......我现在有一个名为 27-Jan 的文件夹,其中包含无数个名为 27-Jan 的文件夹。 (就像我说的,真的很蠢)

好吧,为了让它不再让我越陷越深,我按下了 ^c ,中提琴我停了下来......我改回我的 ~/ 文件夹并快速执行了 sudo rm 27-Jan/。令我惊讶(和担心)的是,这不起作用。我尝试了更多的方法来摆脱它,但没有任何作用。所以像我一样聪明......我把它移到了垃圾箱并不再担心它。从那时起,我清空了垃圾箱几次,但从未真正注意到,但那个该死的文件夹不会消失!它在我的硬盘上占用了零字节,但它仍然存在,并且带有所有小子文件夹。

我尝试过的:

sudo rm 27-Jan/
sudo rm -r 27-Jan/ 

这个问题说override rwxr-xr-x caldwell/staff for 27-Jan/(many times repeated)/27-Jan?我已经回复过yyes甚至si(如果它说西班牙语)......每次它都会说No such file or directory并重复上一个问题。

有人见过这样的事情吗?你知道我可以做些什么来让它消失吗?

答案1

尽量rm -rf避免提示。

-f, --force           ignore non-existent files, never prompt

答案2

一种非常安全的方法是 - 如果您的 find 支持 -delete - 使用 find 进行删除:

find -type d -name 27-Jan -empty -delete

因为-delete 暗示-depth,它会首先沿着树走到目录3275,删除它,向上一级,现在3274也是空的,可以删除,向上一级到3273等等......

人发现:

   -depth Process each directory's contents before the directory itself.
          The -delete action also implies -depth.

答案3

您可以使用 rm 的 -r 开关递归删除目录层次结构

-r, -R, --recursive
              remove directories and their contents recursively

所以发出

rm -r 27-Jan

应该删除该目录。当然,除非您已经尝试过。在这种情况下,您能具体说明您收到的错误吗?

相关内容