
ディレクトリからtest/A/
ディレクトリに一部またはすべてのファイルをコピーしたいのですtest/B/
が、ディレクトリ A 自体はコピーしません。
コマンドを試してみましたcp -R test/A/ test/B
が、ディレクトリとファイルもコピーされてしまいtest/B/A/
…
答え1
を指定するとtest/A/
、Bash にディレクトリ自体をコピーするように指示します。
ディレクトリの内容だけをコピーするには、グロブ*
:
cp -R test/A/* test/B
ここで、 は、*
ドットで始まる隠しファイル ( など) を除く、 A 内のすべてのファイルに一致します.htaccess
。 でこれらも含めるには*
、shopt -s dotglob
before を呼び出します。
答え2
rsync
ローカルまたはリモートで同一のコピーを取得するには、よりも を好みますcp
。これにより、必要に応じてソースまたは宛先で何をコピーするか、さらには削除するかをより細かく制御できます。ちなみに、隠しファイル (別名.*
) に関する問題も修正されます。基本的な使用方法は の場合と同じくらい簡単ですcp
。
ディレクトリA
とその内容をコピーしてB
使用します。
rsync -va test/A test/B
使用するディレクトリの内容A
(隠しファイルを含む)をコピーするにはB
:
rsync -va test/A/ test/B
Bが存在しない場合は作成される