Categories: shellscript

シェルスクリプトでフォルダを削除する方法

シェルスクリプトでフォルダを削除することは、ファイル管理の一環としてよく行われる操作です。この記事では、シェルスクリプトを使用してフォルダを削除する方法を詳細に解説します。

基本的なフォルダ削除コマンド

シェルスクリプトでフォルダを削除する際には、rmdirあるいはrmコマンドを使用します。

これらのコマンドには違いがありますが、よく使われるのはrmコマンドだと思うので、rmコマンドを覚えておくだけでも良いかもしれません。

rmdirコマンド

rmdirコマンドは、空のディレクトリを削除するためのコマンドです。ディレクトリ内にファイルやサブディレクトリがあると削除できません。

基本構文は以下の通りです。

rmdir フォルダ名

例えば以下のように記述します。

rmdir empty_folder

このコマンドは、empty_folderが空のディレクトリである場合にのみ削除します。

rmコマンド

rmコマンドは、ファイルおよびディレクトリを削除するために使われます。-r(再帰的)オプションを使うことで、ディレクトリとその中のすべてのファイルやサブディレクトリを削除できます。

基本構文は以下の通りです。

rm -r フォルダ名

例えば以下のように記述します。

rm -r non_empty_folder

このコマンドは、non_empty_folderとその中のすべての内容を削除します。

フォルダ削除時のエラーチェック

削除操作が誤って重要なデータを失う原因になることを避けるために、削除操作を実行する前にユーザーに確認を求めることも有用です。

以下のコマンドは、フォルダ削除時にユーザーに削除確認を求めるスクリプトです。

FOLDER_NAME=”folder_to_delete”に入っている名前のフォルダ(ここではfolder_to_deleteという名前のフォルダ)を削除します。

#!/bin/bash

FOLDER_NAME="folder_to_delete"

if [ -d "$FOLDER_NAME" ]; then
  read -p "Are you sure you want to delete '$FOLDER_NAME'? [y/N] " confirm
  if [[ $confirm == [yY] ]]; then
    if [ "$(ls -A "$FOLDER_NAME")" ]; then
      rm -r "$FOLDER_NAME"
    else
      rmdir "$FOLDER_NAME"
    fi

    if [ $? -eq 0 ]; then
      echo "Folder '$FOLDER_NAME' deleted successfully."
    else
      echo "Error: Failed to delete folder '$FOLDER_NAME'."
    fi
  else
    echo "Deletion of '$FOLDER_NAME' aborted."
  fi
else
  echo "Error: Folder '$FOLDER_NAME' does not exist."
fi

以下のように、フォルダが存在する場合には確認のメッセージが出ます。

フォルダがない場合には、ないことを示すエラーが出ます。

まとめ

シェルスクリプトでフォルダを削除する方法について説明しました。

これらのコマンドを使うことで、ファイル管理の効率を高めることができます。

Haruoka