ディレクトリのコピー

ディレクトリのコピー

これらのファイルのみを含むディレクトリ内のすべてのファイル(すべてのファイルは通常のファイルであり、ディレクトリ内にはディレクトリ、シンボリックリンクなどはありません)を既存の別のディレクトリに移動したいと思います。

たとえば、これらのファイルは非常に一般的な名前を持ち、robots.txt特定のパターンに従わない。

同様のコマンドを試しました。

cp -a "$HOME"/a "$HOME"/b 

私はこれが再帰的にコピーするコマンドと一緒に-a単純な組み合わせ(スキーマ、所有権、およびタイムスタンプを保持)であることを知っています。-d-R

コピーが繰り返された場合、ファイルがコピーされないのはなぜですか、回避策は何ですか?

答え1

アプリケーションシナリオ:

  1. ディレクトリはa存在しますがb存在しません:

    cp -a "$HOME"/a "$HOME"/b
    

    ディレクトリ全体をa新しいディレクトリにコピーb

  2. ディレクトリab存在:

    cp -a "$HOME"/a "$HOME"/b
    

    ディレクトリがコピーされます。a ~へ目次bだから、ディレクトリを取得します"$HOME"/b/a

  3. ディレクトリab存在:

    cp -a "$HOME"/a/* "$HOME"/b
    

    コピーするコンテンツ~のa ~へディレクトリはb除外されますが、隠しファイルとディレクトリは除外されます。一部のシェルにはこれを含むオプションがありますが、最良のアプローチは次のとおりです。

    cp -a ~/a/. ~/b/
    

    それがあなたが望むものであることを理解しています。

答え2

cp安全警告:

ディレクトリのコピー

ディレクトリaとbが存在します。

    cp -a a b/
    cp -a -t b a

aディレクトリがディレクトリにコピーされますb

ディレクトリaは存在しますが、bは存在しません。

    cp -a a b/
    cp -a -t b a

おなじみのエラーメッセージが生成されます

ファイルのコピー

ディレクトリbが存在します

    cp -T a b

おなじみのエラーメッセージが生成されます

ディレクトリbが存在しません

   cp -T a b

ファイルをbにコピーします。


cp/mv/lnのすべてのバージョンに-tor-Tオプションがあるわけではありませんが、すべてのバージョンでディレクトリを/保証できます。bこれらのオプションがないと、ディレクトリがb既存のディレクトリではないという保証はありません。

関連情報