リカーシブオプションが-rと-Rどちらかわからない

1-2.繰り返し

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

ということになります。

コメント

タイトルとURLをコピーしました