Linuxで通常処理で削除できないファイルを削除する

Linux入門マニュアルを無料プレゼントしています。

ダウンロードは今すぐこちらをクリック

ファイルを削除するにはrmコマンドを実行します。
しかし、名称がハイフン「-」で始まるファイルや、スペース、
メタキャラクタ(メタ文字)が含まれるファイルは、
シェルが正しくファイルを認識出来ないため削除できません。

このような名称のファイルは、Linuxの通常処理ではエラーになるため
作成出来ませんが、WindowsやMacOSでは、ファイルやディレクトリが
作成出来るため、ファイル共有やファイルのアップロードを行った場合、
このような名称のファイルがLinuxに存在することがあります。

この場合、名称にハイフン「-」が含まれるものであれば、
rmコマンドに「--」オプションを付けて引数にハイフンを含むファイルを
指定して削除するか、ファイル名の先頭にドットスラ「./」を付けて削除します。

スペースを含むファイルの場合、ファイル名をクォーテーション「'」または、
ダブルクォーテーション「"」で囲む事で削除できますし、スペースの前に
エスケープシーケンスを付けることで削除できます。

■Linuxで通常処理で削除できないファイルを削除する
[pakira@Tiger ~]$ ls ←ファイルを表示します。
-file.txt This is filetest.txt
[pakira@Tiger ~]$ rm -file.txt ←通常処理の削除を実行します。
rm: オプションが違います -- 'l'      ←エラーメッセージが表示され削除できません。
Try `rm ./-file.txt' to remove the file `-file.txt'.
詳しくは `rm --help' を実行して下さい.
[pakira@Tiger ~]$ rm This is filetest.txt ←通常処理の削除を実行します。
rm: cannot remove `This': そのようなファイルやディレクトリはありません
rm: cannot remove `is': そのようなファイルやディレクトリはありません
rm: cannot remove `filetest.txt': そのようなファイルやディレクトリはありません
↑エラーメッセージが表示され削除できません。
[pakira@Tiger ~]$ rm -- -file.txt ←「--」オプションを付けて削除します。
[pakira@Tiger ~]$ ls ←ファイルを表示します。
This is filetest.txt  ←「-file.txt」が削除されます。
[pakira@Tiger ~]$ rm This\ is\ filetest.txt
↑スペースの前にエスケープシーケンスを付けて削除します。
[pakira@Tiger ~]$ ls  ←ファイルを表示します。
[pakira@Tiger ~]$      ←This is filetest.txtが削除されます。

■ハイフン付きのファイルをドットスラ「./」で削除する
[pakira@Tiger ~]$ ls  ←ファイルを表示します。
-file.txt
[pakira@Tiger ~]$ rm ./-file.txt ←ドットスラ「./」を付けて削除します。
[pakira@Tiger ~]$ ls  ←ファイルを表示します。
[pakira@Tiger ~]$     ←ファイルが削除されます。

■スペースを含むファイルをダブルクォーテーション「"」で囲んで削除する
[pakira@Tiger ~]$ ls  ←ファイルを表示します。
This is filetest.txt
[pakira@Tiger ~]$ rm "This is filetest.txt"
↑ダブルクォーテーション「"」で囲んで削除します。
[pakira@Tiger ~]$ ls  ←ファイルを表示します。
[pakira@Tiger ~]$     ←ファイルが削除されます。




P.S
Linuxで通常処理で削除できないファイルを削除するのもっと高い技術を身につけたいならこちら


<<関連記事>>
・MIMEでエンコードされたテキストを読めるように変換する
・viエディタで文字をコピーする
・ハードディスクの使用状況を調べるには
・tar.bz2ファイルを解凍して展開するには
・tar.gz形式のファイルを解凍、展開するには