首先我要说的是,这是我正在使用的 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?
我已经回复过y
,yes
甚至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
应该删除该目录。当然,除非您已经尝试过。在这种情况下,您能具体说明您收到的错误吗?