📜  如何递归删除目录 ubuntu - Shell-Bash (1)

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

如何递归删除目录 ubuntu - Shell-Bash

在 Ubuntu 中,使用 Shell 命令行进行文件和目录操作是非常常见的。在 Shell 中,可以使用 rm 命令来删除文件和目录。但是,如果要删除一个非空目录,仅仅使用 rm 是不够的。你需要使用 -r 标记来递归删除该目录及其内容。下面,就让我们来介绍如何在 Ubuntu 中递归删除目录。

1. 确认要删除的目录

在使用递归删除目录之前,先要确认需要删除的目录,以免误删重要的文件。使用 ls 命令可以列出当前目录下的文件和目录:

ls

如果要列出指定目录的内容,可以将该目录路径作为参数传递给 ls 命令。例如,列出 "/home/user/documents" 目录下的内容:

ls /home/user/documents
2. 使用 rm 命令删除目录

要递归删除目录及其内容,可以使用 rm 命令,并使用 -r 标记来指定递归删除:

rm -r directory_name

其中,"directory_name" 是要删除的目录名称。

注意:rm -r 命令非常强大,一旦执行,将立即删除目录中的所有文件及其子目录!请确认要删除的目录名是否正确,在执行前三思而后行。

如果你想确认删除操作,可以使用 -i 标记。-i 标记会提示你是否要删除每个文件和子目录:

rm -r -i directory_name
3. 示例

下面是一个使用 Shell 脚本递归删除目录的示例:

#!/bin/bash

echo "Enter the directory name you want to delete: "
read dir_name
if [ -d $dir_name ] ; then
  echo "Are you sure to delete the directory $dir_name? (y/n)"
  read answer
  if [ $answer = "y" ] ; then
    rm -r -i $dir_name
  else
    echo "Not confirmed. Exiting..."
    exit 1
  fi
else
  echo "The directory $dir_name does not exist. Exiting..."
  exit 1
fi

该脚本会提示用户输入需要删除的目录名称,然后会先确认该目录是否存在,然后再询问用户是否确认要删除该目录。如果用户确认,脚本将执行递归删除操作,并使用 -i 标记提示用户确认每个文件及子目录的删除操作。如果用户不确认删除操作,则脚本将退出。

结论

在 Ubuntu 中,你可以使用 rm -r 命令来递归删除一个目录及其内容,但是务必要确认目录名输入正确,并确保不会误删其他文件和目录。如有需要,可以使用 -i 标记提示用户确认删除操作。