chmodを使うとき、recursive(再帰的)オプションの指定を間違えてしまうことがよくあります。
takk~$ chmod -r 755 dir chmod: `755' にアクセスできません: そのようなファイルやディレクトリはありません takk~$ echo $? 1 takk~$ chmod -R 755 dir takk~$ echo $? 0 takk~$
(echo $?は前コマンドの結果がOKであれば0が表示されます)
よく使うコマンドを整理すると、案外recuresiveオプションを使うコマンドが少ないことに気づきます。
-Rがrecusiveオプションのコマンド
ls chmod chown chgrp grep cp rm
-rがrecusiveオプションのコマンド
grep cp rm diff
grepや、cp、rmは、-rでも-Rでもrecursive指定となります。実際-rオプションしか使えないのは、diffだけです。
diff以外は全部-Rで指定すると、記憶しておけば問題ないかと思います。
-rや-Rは、recursiveという英単語の頭文字から命名されていますが、頭文字がrから始まる英単語はrecursivだけではありません。reverseもrから始まります。reverseの意味として、-rオプションを使うコマンドに関しても、それほど多くありません。
-rがreverseオプションのコマンド
ls sort
まとめると、
ディレクトリを扱う場合に、再帰オプションを使うなら大文字R、例外としてdiff
-R
逆順ソートさせるために、reverseオプションを使うなら小文字r
-r
ということになります。
コメント