Linux シェルコマンド プログラミング 備忘録

いつも忘れちゃう Linuxでディレクトリを削除するシェルコマンド

eye catch picture

ファイル削除コマンド rm に -r オプションを付ける

 

//ディレクトリ内を削除前に確認しない
$ rm -rf ディレクトリ名

//内容の削除前に確認あり 
$ rm -r ディレクトリ名 

 

ファイル削除コマンド rm -r オブションを付けるとディレクトリとその中のファイルを一度に削除できます。

これを付けないとrmコマンドではディレクトリは消せません。

ディレクトリが空の場合はこれで問題ありませんが、中にファイルが残っている場合は本当に削除してよいかどうかをいちいち確認されて面倒です。

そこで一般的には -rf オプションを付けて確認なしに削除することが多いようです。

 

"再帰"は分からん...

-r オプションが覚えられないのは -r が"recursive"=再帰的の略だからかも知れません。"再帰"という言葉がどうしても身につかない。

聞いた話では、プログラムを書く人間には"再帰が理解できる人とそうでない人"が居るそうです。

正直、私は後者なんですよね。再帰を使ったプログラムの解説を読めば分かったきになるけど自分では絶対に書けない。

プロなら分かりませんでは済みませんが、分かる範囲でやっていけるのがアマチュアのよいところです。

一方、-f はforceの略なんで、あー、ムリヤリ消すのね、と分かりやすい。

 

"-d"じゃ駄目なのか?

調べてみると rm には -d という空のディレクトリを削除するコマンドもあったりします。

rm -dr ディレクトリ名

とやってみたら、ちゃんと中身のあるディレクトリも消せる。これじゃ駄目なのかな? なんでみんな rm -rf を使うんだろ。

 

git管理を止めるときには .gitディレクトリを削除する

私はMacを使っているのでディレクトリはFinderでゴミ箱に入れれば簡単に消せます。

このためシェルコマンドでディレクトリを消す機会はあまり無かったりします。

コマンドでディレクトリを消す場面としては、例えば git管理を止めるときがあります。

git管理を止めるには、対象ディレクトリ内にある .git という隠しディレクトリを削除します。

 

$ rm -rf .git/

 

隠しディレクトリはMacのFinderで表示されないので、これはコマンドでやる方が簡単だと思います。

最後のスラッシュはあってもなくても動くみたいです。

 

 

-Linux, シェルコマンド, プログラミング, 備忘録