Faça o que você fez:
cp -r dir1 dir2
e você terá dir1 (com seu conteúdo também) dentro de dir2 . Tente se você não acredita; -).
O comando que copia o conteúdo de dir1 para dir2 é:
cp -r dir1/* dir2
Eu quero copiar um diretório para outro diretório.
Por exemplo, cp -r dir1 dir2
copia o conteúdo de dir1 para dir2. Eu quero copiar dir1-se em dir2 para que se eu ls dir2
ele irá produzir dir1
e não o que estava dentro de dir1.
Veja o manual do cp (também mv):
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
Se você fizer cp a b
, então, se b não existir, você receberá cp -T a b
, mas se b existir e for um diretório, você receberá cp -t b a
, senão, erro.
mkdir empty
cd empty
mkdir a
touch a/a-file
cp -r a b #this creates b a copy of a
cp -r a b #this time it makes a copy of a called a in b (b/a)
mkdir empty
cd empty
mkdir a
touch a/a-file
cp -r -T a b #this creates b, a copy of a
cp -r -T a b #updates b (no effect in this case)
mkdir empty
cd empty
mkdir a
touch a/a-file
mkdir b
cp -r -t b a #copy a into b
cp -r -t b a #updates a/b (no effect in this case)