Risposte:
Il punto ( .
) è solo la .
directory all'interno di una directory che è la stessa della directory stessa (te ls -la /foo
la mostrerà). Quindi, se copi foo/.
altrove, copi effettivamente tutto l'albero sottostante foo
senza copiarlo foo
(lo stai copiando in quello foo2/.
che è lo stesso di foo2
).
/foo/*
viene espanso dalla shell all'elenco di file e directory non nascosti in /foo
, quindi copierà anche la stessa struttura di directory /foo
in /foo2
, ad eccezione dei dotfile / dotdir. In effetti, cp
riceverà (potenzialmente) molti argomenti. Se l'elenco è troppo grande, potrebbe anche cp
non riuscire l'esecuzione di .
set -x
o echo cp -pr /foo/* /foo2
per vedere cosa sta succedendo. È importante rendersi conto che è la shell che espande i caratteri jolly. cp
non vede la stella.
cp -r /foo/*
, la stessa cosa dicp /foo/*
?