Jawaban:
Titik ( .) hanyalah .direktori di dalam direktori yang sama dengan direktori itu sendiri ( ls -la /fooakan menunjukkannya kepada Anda). Jadi, jika Anda menyalin di foo/.tempat lain, Anda secara efektif menyalin semua pohon di bawah ini footanpa menyalin foosendiri (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 /fooke dalam /foo2juga, kecuali untuk dotfiles / dotdirs. Secara efektif, cpakan menerima (berpotensi) banyak argumen. Jika daftar terlalu besar, bahkan dapat menyebabkan eksekusi cpgagal.
set -xatau echo cp -pr /foo/* /foo2untuk melihat apa yang terjadi. Sangat penting untuk menyadari bahwa itu adalah shell yang memperluas wildcard. cptidak melihat bintang.
cp -r /foo/*apakah hal yang sama terjadicp /foo/*?