Jawaban:
Titik ( .
) hanyalah .
direktori di dalam direktori yang sama dengan direktori itu sendiri ( ls -la /foo
akan menunjukkannya kepada Anda). Jadi, jika Anda menyalin di foo/.
tempat lain, Anda secara efektif menyalin semua pohon di bawah ini foo
tanpa menyalin foo
sendiri (Anda menyalinnya ke foo2/.
yang sama dengan foo2
).
/foo/*
diperluas oleh shell untuk daftar file non-tersembunyi dan direktori di /foo
, sehingga akan menyalin struktur direktori yang sama di bawah /foo
ke dalam /foo2
juga, kecuali untuk dotfiles / dotdirs. Secara efektif, cp
akan menerima (berpotensi) banyak argumen. Jika daftar terlalu besar, bahkan dapat menyebabkan eksekusi cp
gagal.
set -x
atau echo cp -pr /foo/* /foo2
untuk melihat apa yang terjadi. Sangat penting untuk menyadari bahwa itu adalah shell yang memperluas wildcard. cp
tidak melihat bintang.
cp -r /foo/*
apakah hal yang sama terjadicp /foo/*
?