Linux - ファイル、ディレクトリ削除コマンド(rm -rf、rmdir)

Linux(Ubuntu)の端末からファイルやディレクトリを削除するための命令を紹介します。

次のような場合には、使用する命令が少しずつ異なります。

  • ファイルの削除: rm [file path]
  • 空のフォルダ(ディレクトリ)を削除する: rmdir [dir path]または rm -d [dir path]
  • ファイルを含むフォルダ(ディレクトリ)を削除する: rm -r [dir path]

もちろん、これを区別せずにただ削除したい場合は、 rm -rf [path] コマンドでディレクトリやファイルを削除してください。

それぞれの命令を紹介し、違いなどを見てみましょう。

1. ファイルの削除: rm [file path]

1つまたは複数のファイルを削除するときは、以下のようにrm命令にファイルパスをリストするだけです。入力したすべてのファイルが削除されます。

$ rm myFile.txt

$ rm myFile.txt myFile2.txt myFile3.txt

しかし、rm命令でディレクトリを削除しようとすると、次のようにエラーが発生して失敗します。

$ rm ./myDir
rm: cannot remove 'myDir/': Is a directory

2.空のフォルダ(ディレクトリ)を削除する: rmdir [dir path]または rm -d [dir path]

空のフォルダは rmdir [dir path] または rm -d [dir path] コマンドで削除できます。

$ rmdir myDir

$ rm -d myDir

ディレクトリ内にフォルダやファイルがある場合、上記の命令は以下のようにエラーを出力し、ディレクトリを削除しません。

$ rmdir myDir/
rmdir: failed to remove 'myDir/': Directory not empty

3. ファイルを持っているフォルダ(ディレクトリ)を削除する: rm -r [dir path]

ファイルを持っているディレクトリを消去したいときは、以下のように rm -r コマンドで削除できます。

$ rm -r myDir/

-r オプションは、以下のように再帰的に子にあるすべてのファイルおよびディレクトリを削除するという意味です。

$ rm --help
Usage: rm [OPTION]... [FILE]...
Remove (unlink) the FILE(s).

  -f, --force           ignore nonexistent files and arguments, never prompt
  -r, -R, --recursive   remove directories and their contents recursively
  -d, --dir             remove empty directories

時々 rm -r コマンドでディレクトリを削除するとき、何らかの問題があればファイルを削除せずに警告し、 f オプションを追加して rm -rf で削除すると警告なしでディレクトリやファイルを削除します。

rm -r [dir path]コマンドは、ディレクトリにファイルがあるかどうか、または常にディレクトリを削除します。

結論は、削除したい対象が確実で警告を無視したい場合は rm -rf で削除してください。そうでない場合は、rm -rで削除してください。誤ってシステムディレクトリを削除しようとすると、警告が発生してファイルが削除されないことがあります。

codechachaCopyright ©2019 codechacha