📌  相关文章
📜  删除除一个 linux 之外的所有文件夹 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:36:57.181000             🧑  作者: Mango

删除除一个 linux 之外的所有文件夹 - Shell-Bash

当我们需要在linux系统上删除除一个特定文件夹外的所有其他文件夹时,可以使用Shell命令来实现。下面是一个Shell脚本,它可以实现这个需求。

#!/bin/bash

#定义要保留的目录名称
KEEP_DIR="/path/to/keep/directory"

#获取当前目录
CURRENT_DIR="$(pwd)"

#增加对KEEP_DIR目录的保护
if [ "$CURRENT_DIR" == "$KEEP_DIR" ]; then
    echo "当前目录为保留目录,不删除任何文件夹"
    exit 1
fi

#删除当前目录下除了要保留的目录以外的其他所有目录
ls -d */ | grep -v "$KEEP_DIR" | xargs rm -rf

echo "所有目录删除成功!"

这个脚本首先定义了要保留的目录的名称,然后获取当前目录名称并对要保留的目录进行了保护。接下来,通过ls命令列出所有目录并使用grep命令来过滤要保留的目录,并使用xargsrm命令来删除除保留目录以外的其他所有目录。最后输出删除成功的提示信息。

这个脚本可以通过bash命令来执行,也可以将其添加到crontab等定时任务中。

以上就是一个简单的Shell脚本来删除除一个特定文件夹外的所有其他文件夹的方法。