递归删除目录的内容

递归删除目录的内容

我想删除文件夹的内容但不删除文件夹:所有文件和所有带有子文件的子文件夹。这不会删除任何内容

sudo rm -rf /folder1/*

为什么不可以?如何让它工作?

答案1

folder1真的是直接在 root 中吗/?您必须使用相对或绝对路径:

sudo rm -rf folder1/*
sudo rm -rf /full/path/to/folder1/*

那么你必须记住,通配符是处理 sudo。如果用户无权读取 的内容folder1,则通配符将不返回任何内容。您可以使用以下代码进行测试

sudo echo folder1/*

在这种情况下,你可以

sudo bash
rm -rf folder1/*

答案2

你说的是 sudo“rm -rf /文件夹1/*”不适合您如果目录中有数千个文件,则会发生这种情况,要么处理时间太长,要么会说参数列表太长在这种情况下您可以尝试以下命令

首先进入要删除文件的目录cd /文件夹/

/bin/ls -A | xargs rm -rf

这将删除所有文件和目录,甚至包括以点开头的隐藏文件和目录,但特殊的 . 和 .. 目录除外。您不想删除 . 和 ..(它们分别是当前目录和父目录)。

相关内容