このコマンドはドットで始まるファイルをコピーしない。*はシェルによって展開されるためで、シェルはドットで始まるファイルを*に含ませない。以下を実行するとわかる。
だからといって.*でやろうとすると、.や..も.*に含まれるため予期しない動作になる可能性が高い。
cpですべてのファイルをコピーするには*を使わずディレクトリを指定して行うのが良い。.もディレクトリなのでこれをつかってもいい。
このコマンドはドットで始まるファイルをコピーしない。*はシェルによって展開されるためで、シェルはドットで始まるファイルを*に含ませない。以下を実行するとわかる。
だからといって.*でやろうとすると、.や..も.*に含まれるため予期しない動作になる可能性が高い。
cpですべてのファイルをコピーするには*を使わずディレクトリを指定して行うのが良い。.もディレクトリなのでこれをつかってもいい。
以下のようディレクトリからcccとfffを除いてコピーしたい。
テスト
これでcccとfffを除いた一覧が取得できる。mindepthとmaxdepthをともに1を指定して、この階層のみ出力する。
-execで見つかったもファイルやディレクトリに対してコマンドを実行する。{}は見つかったファイルやディレクトリに置き換わる。\;は-execの終わりを意味する。ここではcpの前にechoをつけて実行されるコマンドを確認している。このコマンドで良ければechoを削除すれば実際に実行する。