1 |
$ cp -a * /somedir/ |
このコマンドはドットで始まるファイルをコピーしない。*はシェルによって展開されるためで、シェルはドットで始まるファイルを*に含ませない。以下を実行するとわかる。
1 |
$ echo * |
だからといって.*でやろうとすると、.や..も.*に含まれるため予期しない動作になる可能性が高い。
1 2 3 4 5 |
$ echo * a bin gitdev T templates $ echo .* . .. .bash_history .bash_logout .bash_profile .bashrc .gitconfig .inputrc .minttyrc .profile .ssh .subversion .viminfo $ |
cpですべてのファイルをコピーするには*を使わずディレクトリを指定して行うのが良い。.もディレクトリなのでこれをつかってもいい。