No primeiro caso, você está pedindo que cp
copie /tmp/a
e seu conteúdo para /tmp/b
; então primeiro a
é copiado, para /tmp/b/a
, então o conteúdo de a
é copiado para /tmp/b/a
.
No segundo caso, você está pedindo que cp
copie .
e seu conteúdo para /tmp/b
; usando o mesmo processo de pensamento acima, podemos pensar nisso como copiando .
primeiro para /tmp/b/.
( ie /tmp/b
), então copiando o conteúdo de .
para /tmp/b/.
.
Não existe uma referência curta para o diretório atual, que pode funcionar em todos os casos, já que o diretório atual pode ter nomes diferentes (usando links simbólicos). Eu acho que o mais próximo que você pode chegar é $PWD
.