bash では、これを行う必要があります。
ディレクトリ内のすべてのファイルを取る
それらを既存のディレクトリにコピーします
どうすればいいですか?私は試しましたcp -r t1 t2
(t1とt2は両方とも既存のディレクトリで、t1にはファイルがあります)が、t2内にt1というディレクトリが作成されました.t2内に直接移動するには、t1内のファイルが必要です。どうすればいいですか?
あなたが望むものは:
cp -R t1/. t2/
最後のドットは、ディレクトリ自体ではなく、現在のディレクトリの内容をコピーするように指示します。この方法には、隠しファイルとフォルダーも含まれます。
cp dir1/* dir2
または、dir1 内にコピーしたいディレクトリがある場合
cp -r dir1/* dir2
あるディレクトリから現在のディレクトリに何かをコピーする場合は、次のようにします。
cp dir1/* .
これは、隠しファイルをコピーしようとしていないことを前提としています。
cp -R t1/ t2
ソース ディレクトリの末尾のスラッシュはセマンティクスをわずかに変更するため、内容はコピーされますが、ディレクトリ自体はコピーされません。また、Bertrand の回答にあるグロビングと不可視ファイルの問題も回避されます (t1/*
不可視ファイルをコピーすると、不可視ファイルが失われ、't1/* t1/.*' をコピーすると t1/. と t1/.. がコピーされますが、これは望ましくありません)。
いくつかの詳細に応じて、次のようなことをする必要があるかもしれません:
r=$(pwd)
case "$TARG" in
/*) p=$r;;
*) p="";;
esac
cd "$SRC" && cp -r . "$p/$TARG"
cd "$r"
...これは基本的にSRCディレクトリに変更され、それをターゲットにコピーしてから、開始した場所に戻ります。
余分な手間は、相対または絶対ターゲットを処理することです。
(これは、コマンド自体の微妙なセマンティクスに依存していませんcp
...末尾の/の有無にかかわらずソース仕様をどのように処理するかについて...それらがGNUcp
と私だけを超えて安定性、移植性、信頼性があるかどうかわからないため今後もそうであるかどうかはわかりません)。