unlinkコマンドは使い方に注意しないといけない危険なコマンド


unlinkに関して勘違いをしていたのでメモ.

シンボリックリンクを貼る際に使うコマンドln. 第一引数にリンク元,第二引数に作成するリンクを指定する.

$ ln -s hoge fuga
$ ls -n
total 8
lrwxr-xr-x  1 user  staff  4 11 15 01:36 fuga -> hoge
-rw-r--r--  1 user  staff  0 11 15 01:36 hoge

上記のコマンドによってhogeのシンボリックリンクfugaを作成.

そして、コマンドunlinkはシンボリックリンクを削除するために用いるコマンド.

$ unlink fuga

このようにシンボリックリンクを削除する.

今回私は間違って、

$ unlink hoge

のようにリンク元を引数に指定してしまった。
その後、改めてリンク先を指定し、もう一度シンボリックリンクを貼ろうとすると、hogeが無いとエラーが発生.
確認してみるとたしかにhogeがなくなっている...

あれ?unlinkってリンク以外も削除しちゃうの?
unlinkの説明を見てみると、

NAME
     rm, unlink -- remove directory entries

SYNOPSIS
     rm [-dfiPRrvW] file ...
     unlink file
.
.

つまり、オプションを指定しないrmと動作は同じ.

これからはunlinkの使い方に気をつけたい.