Linuxコマンド rm(指定したディレクトリやファイル削除)

指定したディレクトリやファイルを削除するrmコマンドの解説

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

使用方法

rmコマンドで引数に指定したファイルやディレクトリを削除します。ディレクトリ内が空でない場合はエラーが表示されます。強制的に削除する場合は「-f」オプションを使用します。また、再帰的(ディレクトリ内のサブディレクトリやファイルが存在する場合)に削除したい場合は、「-rf」オプションを使用する。

rmコマンドで実行した直後であれば、ディレクトリやファイルを復元することができる。復元ができないレベルd削除する場合は、shredコマンドを使用する。

書式

$ rm [オプション] 削除するディレクトリ名 or 削除するファイル名・・・
-d,
–dir
空ディレクトリを削除する
-f,
–force
強制的に削除する
-i,
–interactive
問い合わせしてから削除する
-r,
-R
ディレクトリの削除または、再帰的にディレクトリを削除する
–no-preserve-root「/」を特別扱いにしない。「/」はトップディレクトリなので削除対象としていないよう
配慮されているがそれを配慮しなくなる。
オプション一覧

サンプル:ファイルの削除

$ rm sample.txt

実行結果

[centos@ work]$ tree
.
├── sample.txt
└── tmp

1 directory, 1 file
[centos@ work]$ rm sample.txt
[centos@ work]$ tree
.
└── tmp

1 directory, 0 files
[centos@ work]$ 

サンプル:ノーオプションでのディレクトリの削除

$ rm tmp

実行結果

[centos@ work]$ tree
.
└── tmp

1 directory, 0 files
[centos@ work]$ rm tmp
rm: cannot remove ‘tmp’: Is a directory
[centos@ work]$ 

サンプル:ディレクトリの削除

$ rm -r tmp/

実行結果

[centos@ work]$ tree
.
└── tmp

1 directory, 0 files
[centos@ work]$ rm -r tmp/
[centos@ work]$ tree
.

0 directories, 0 files
[centos@ work]$ 

rmコマンドの注意点
root権限で次のコマンドを実行した場合、rm -rf / linuxが起動に必要なシステムファイル等もすべて削除するため、コマンド実行する前に発行するコマンドは注意する必要がある。

複数のファイル及びディレクトリを削除する

rmコマンドで引数にスペースで区切りながら列挙することで、複数のファイルを削除することができる。また、スペースが含まれているファイルの場合は、””(ダブルコーテーション)でくくると良いだろう。

サンプル

$ rm sample1.txt sample2.txt

実行結果

[centos@ work]$ tree
.
├── sample1.txt
├── sample2.txt
└── tmp

1 directory, 2 files
[centos@ work]$ rm sample1.txt sample2.txt 
[centos@ work]$ tree
.
└── tmp

1 directory, 0 files
[centos@ work]$ 

特定の拡張子を一度にすべて削除する

ファイル名に0文字以上の任意の文字列を表すワイルドカード(*)を使用する。

サンプル

$ rm *.jpg

実行結果

[centos@ work]$ tree
.
├── pic.jpg
├── sample1.jpg
├── sample2.jpg
└── tmp

1 directory, 3 files
[centos@ work]$ rm *.jpg
[centos@ work]$ tree
.
└── tmp

1 directory, 0 files
[centos@ work]$ 

ディレクトリ内のすべてのディレクトリとファイルを削除する

強制的にディレクトリ内のすべてのディレクトリとファイルを削除する。rmdirではディレクトリ内にファイルが存在していると削除できないが、rmコマンドに「-rf」オプションを付けることで、再帰的に削除することができる。

サンプル

$ rm -rf work/

実行結果

[centos@ work]$ tree
.
└── tmp
    ├── index.txt
    └── sample

2 directories, 1 file
[centos@ work]$ rm -rf tmp/
[centos@ work]$ tree
.

0 directories, 0 files
[centos@ work]$ 

確認しながら削除する

rmコマンドの-iオプションを付加することにより、サブディレクトリやディレクトリ配下にファイルが存在する場合、メッセージを確認しながら削除することができる。

サンプル

$ rm -ri tmp/

実行結果

[centos@ work]$ rm -ri tmp/
rm: descend into directory ‘tmp/’? y
rm: remove directory ‘tmp/sample’? y
rm: remove regular file ‘tmp/sample1.txt’? y
rm: remove directory ‘tmp/’? y
[centos@ work]$ tree
.

0 directories, 0 files
[centos@ work]$