【Linux】rmdir-ディレクトリの削除|初学者に向けた備忘録

Linux
スポンサーリンク
はづき
はづき

こんにちは!はづきです

文系から一部上場IT企業に就職し、エンジニアをやっています

この記事はLinuxのrmdirコマンドについての備忘録です

rmdirは「remove directory」の略称で、ディレクトリを削除するためのコマンドです

似たコマンドとしてrmコマンドがあります。rmはファイルとディレクトリをどちらも削除することができますが、rmdirはディレクトリしか削除することができません。rmdirを上手く活用すれば誤ってファイルを削除してしまうリスクを減らすことができます

基本操作と頻繁に使用するオプションの実行例を紹介します。ぜひご参考ください

※この記事は初心者向けに平易に解説しています。正確な理解をしたい人は専門書・専門家をあたっていただければと思います。また、この記事の情報におけるCPの動作結果については自己責任でお願いします。

※本サイトにはプロモーション・広告が含まれています(はづきのブログより)

スポンサーリンク

rmdirコマンドでディレクトリを削除する

まずはrmdirコマンドの基本操作から解説します

以降の解説では、上記画像のようなでディレクトリ階層を事前に準備して検証していきます

rmdirコマンドの基本操作

rmdir {削除したいディレクトリ名}

rmdirコマンドは「rmdir {削除したいディレクトリ名}」で使うことができます

{削除したいディレクトリ名}には複数のディレクトリを同時に指定して削除することができます

また、パスを指定すれば別階層のディレクトリを削除できます

#rmコマンドでディレクトリ(dir1)を削除する
hazukiblog@hazukiBlog:~/work$ ls #削除前の状態を確認
Dir1  Dir2  dir1  dir10  dir2
hazukiblog@hazukiBlog:~/work$ rmdir dir1 #rmコマンド実行
hazukiblog@hazukiBlog:~/work$ ls #dir1が削除されている
Dir1  Dir2  dir10  dir2

#複数のディレクトリも同時に指定できる
#以下ではdir2,dir10を2つ同時に削除している
hazukiblog@hazukiBlog:~/work$ rmdir dir2 dir10
hazukiblog@hazukiBlog:~/work$ ls
Dir1  Dir2

#別階層のディレクトリも削除できる
#以下ではDir2/subDir1配下のsubDir2を削除している
hazukiblog@hazukiBlog:~/work$ ls Dir2/subDir1/ #削除前の状態を確認
subDir2
hazukiblog@hazukiBlog:~/work$ rmdir Dir2/subDir1/subDir2/
hazukiblog@hazukiBlog:~/work$ ls Dir2/subDir1/ #subDir2が削除されている
 

rmdirコマンドでワイルドカードを使用する

ワイルドカード文字説明               
*任意の文字列
?任意の1文字

rmdirコマンドではワイルドカードを使用することもできます

ワイルドカードとはファイル名の共通部分を指定して選択できる機能です(例.「.html」で終わるファイルを一度ですべて処理したい、など)

指定するときは「*」や「?」といった記号を使います

以下で実行例を見てみましょう

#ワイルドカード「?」を使用して「dir{1文字}」のディレクトリを削除する
hazukiblog@hazukiBlog:~/work$ ls #削除前の状態を確認
Dir1  Dir2  dir1  dir10  dir2
hazukiblog@hazukiBlog:~/work$ rmdir dir? #「dir1」「dir2」を削除する
hazukiblog@hazukiBlog:~/work$ ls #削除後の状態を確認
Dir1  Dir2  dir10
#ワイルドカード「*」を使用して「d」からはじまるディレクトリを削除する
hazukiblog@hazukiBlog:~/work$ ls #削除前の状態を確認
Dir1  Dir2  dir1  dir10  dir2
hazukiblog@hazukiBlog:~/work$ rmdir d*
hazukiblog@hazukiBlog:~/work$ ls #削除後の状態を確認
Dir1  Dir2

空でないディレクトリは消せない

rmdirは空のディレクトリでないと消すことができません

以下ではディレクトリの中にファイルが存在するためエラーが出ます

空でないディレクトリを消すときはrmコマンドに「-r」オプションを使用する必要があります

rmコマンドの解説はこちら

#Dir1配下にはファイル(file1)が存在する
hazukiblog@hazukiBlog:~/work$ ls Dir1
file1
#ディレクトリが空でないため削除できない
hazukiblog@hazukiBlog:~/work$ rmdir Dir1
rmdir: failed to remove 'Dir1': Directory not empty

rmdirコマンドのオプションを紹介

rmdirコマンドにはいくつかのオプションが用意されています

以下ではオプションの使い方について実行例を交えて解説します

-p:親ディレクトリも含めて削除する

-pオプションを指定することで親ディレクトリを含めて削除することができます

階層になっているディレクトリの最下層のディレクトリ名を指定することで階層ごと削除できます。各ディレクトリの中身は空である(=ファイルがない)必要があります

#Dir2はDir2/subDir1/subDir2という階層になっている
hazukiblog@hazukiBlog:~/work$ ls
Dir1  Dir2  dir1  dir10  dir2
hazukiblog@hazukiBlog:~/work$ ls -R Dir2
Dir2:
subDir1

Dir2/subDir1:
subDir2

Dir2/subDir1/subDir2:
#-pオプションを使って上記3つのディレクトリを削除する
hazukiblog@hazukiBlog:~/work$ rmdir -p Dir2/subDir1/subDir2
hazukiblog@hazukiBlog:~/work$ ls
Dir1  dir1  dir10  dir2

ちなみに、最下層でないディレクトリを指定すると以下のようにエラーが出ます

#-pオプションを使うときは最下層のディレクトリを指定する必要がある
hazukiblog@hazukiBlog:~/work$ ls
Dir1  Dir2  dir1  dir10  dir2
#以下のように実行した場合、エラーが出る
hazukiblog@hazukiBlog:~/work$ rmdir -p Dir2/subDir1/
rmdir: failed to remove 'Dir2/subDir1/': Directory not empty

-v:削除したディレクトリ名を表示する

-vを指定すると削除完了したディレクトリ名が表示されます

削除が完了したことを示せるため実行結果をログとして残すことができます

#以下ではdir1,dir2の2つのディレクトリを-vを付けて削除してみる
hazukiblog@hazukiBlog:~/work$ ls
Dir1  Dir2  dir1  dir10  dir2
#削除すると以下のようにディレクトリ名が表示される
hazukiblog@hazukiBlog:~/work$ rmdir -v dir1 dir2
rmdir: removing directory, 'dir1'
rmdir: removing directory, 'dir2'
hazukiblog@hazukiBlog:~/work$ ls
Dir1  Dir2  dir10

--ignore-fail-on-non-empty:エラーを非表示にする

「--ignore-fail-on-non-empty」を指定すると、空のディレクトリを削除するときに出るエラーを非表示にすることができます

他のエラーについては非表示にすることができないので注意が必要です

#空でないディレクトリを削除しようとすると以下のようにエラーが出る
hazukiblog@hazukiBlog:~/work$ rmdir Dir1
rmdir: failed to remove 'Dir1': Directory not empty

#「--ignore-fail-on-non-empty」を付けるとエラーが非表示になる
hazukiblog@hazukiBlog:~/work$ rmdir --ignore-fail-on-non-empty Dir1

 
#ちなみに存在しないディレクトリを削除してもエラーが出る
hazukiblog@hazukiBlog:~/work$ rmdir dir3
rmdir: failed to remove 'file3': No such file or directory
#ただし、「--ignore-fail-on-non-empty」ではエラーを非表示にできない
#あくまで空ディレクトリ削除時のエラーのみに有効なオプションです
hazukiblog@hazukiBlog:~/work$ rmdir --ignore-fail-on-non-empty dir3
rmdir: failed to remove 'file3': No such file or directory

 

今回はLinuxのrmdirコマンドについて紹介しました

みなさんのお役に立てば幸いです。最後まで読んでいただきありがとうございました

おしまい

コメント

タイトルとURLをコピーしました