シェルスクリプトでフォルダを削除することは、ファイル管理の一環としてよく行われる操作です。この記事では、シェルスクリプトを使用してフォルダを削除する方法を詳細に解説します。
目次
基本的なフォルダ削除コマンド
シェルスクリプトでフォルダを削除する際には、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
以下のように、フォルダが存在する場合には確認のメッセージが出ます。
フォルダがない場合には、ないことを示すエラーが出ます。
まとめ
シェルスクリプトでフォルダを削除する方法について説明しました。
これらのコマンドを使うことで、ファイル管理の効率を高めることができます。