Punya GNU?
Versi gnu lsmemiliki --group-directories-first. Dan cpsudah -t.
Tidak ada GNU?
Pada sistem yang tidak memiliki gnu ls, taruhan terbaik Anda adalah dua panggilan berurutan finddengan -maxdepth n/ -mindepth ndan -type tdengan opsi yang sesuai.
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
Untuk menyalin file, dengan target terlebih dahulu, Anda harus menulis skrip yang menyimpan argumen pertama, lalu menggunakan shift, dan menambahkan argumen hingga akhir.
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
Awas!
Jika Anda berencana untuk menggunakan ini bersama-sama - yaitu, mengumpulkan daftar dari findatau ls(mungkin dengan menggunakan xargs) dan meneruskannya ke cp(atau cppembungkus), Anda harus mengetahui bahaya apa yang ada di parsing daftar file (pada dasarnya, nama file dapat mengandung karakter seperti baris baru yang dapat mengacaukan skrip Anda). Secara khusus, lihat ke find's -execdan -print0pilihan dan xargs' s -0pilihan.
Alat alternatif untuk menyalin pohon direktori secara efisien.
Anda mungkin ingin melihat menggunakan rsyncsebagai gantinya; ini memiliki banyak fungsi yang mungkin membuat pekerjaan Anda lebih mudah.
lsmemiliki--group-directories-firstsaklar.