Bashでは、これを行う必要があります。
ディレクトリ内のすべてのファイルを取ります
既存のディレクトリにそれらをコピーする
どうやってこれをするの?私はcp -r t1 t2
を試しました(t1とt2は両方とも既存のディレクトリです、t1はそれにファイルを持っています)、それはt2の中にt1と呼ばれるディレクトリを作成しました。どうやってこれをするの?
あなたが欲しいのは:
cp -R t1/. t2/
末尾のドットは、ディレクトリ自体ではなく、現在のディレクトリの内容をコピーするように指示しています。この方法には、隠しファイルと隠しフォルダも含まれます。
あるディレクトリからcurrentディレクトリに何かをコピーしたい場合は、次のようにします。
cp dir1/* .
これはあなたが隠しファイルをコピーしようとしていないことを前提としています。
cp dir1/* dir2
またはdir1の中にコピーしたいディレクトリがある場合
cp -r dir1/* dir2
T1がファイルを格納しているフォルダ、t2が空のディレクトリであるとします。あなたが欲しいものはこのようなものです:
Sudo cp -R t1/* t2/
最初の例では、t1とt2はフルパス、または相対パス(現在地に基づく)でなければなりません。必要に応じて、空のフォルダ(t2)に移動してこれを実行できます。
Sudo cp -R t1/* ./
または、ファイルのあるフォルダ(t1)に移動してこれを実行します。
Sudo cp -R ./* t2/
注:*記号(またはワイルドカード)は、すべてのファイルとフォルダを表します。 -Rフラグは再帰的に(すべての中のすべてのものを)意味します。
cp -R t1/ t2
ソースディレクトリの末尾のスラッシュはセマンティクスをわずかに変更するため、内容はコピーされますがディレクトリ自体はコピーされません。それはまたBertrandの答えが持っているグロビングと見えないファイルに関する問題を避けます(t1/*
をコピーすることは見えないファイルを見逃し、 `t1/* t1 /.* 'をコピーすることはあなたが望まない)。
詳細によっては、次のようにする必要があります。
r=$(pwd)
case "$TARG" in
/*) p=$r;;
*) p="";;
esac
cd "$SRC" && cp -r . "$p/$TARG"
cd "$r"
...これは基本的にSRCディレクトリに変更してそれをターゲットにコピーし、それからあなたが始めたところまで戻ります。
余分な手間は相対的または絶対的なターゲットを処理することです。
(これは、cp
コマンド自体の微妙な意味には依存しません。末尾の/を付けて、または付けずにソース仕様を処理する方法について...安定性、移植性、信頼性が確かではないため、GNU cp
と、将来もそうなるかどうかはわかりません)。
あるディレクトリの中では、 "folder1"からあるディレクトリの中の新しいディレクトリ "folder2"にすべての内容をコピーするので、これは完全に使われるでしょう。
$(pwd)は現在のディレクトリへのパスを取得します。
Folder1内のすべての内容を取得するには、folder1の後のドット(。)に注目してください。
cp -r $(pwd)/folder1/. $(pwd)/folder2