Có GNU không?
Phiên bản gnu của lscó --group-directories-first. Và cpcó -t.
Không có GNU?
Trên các hệ thống không có gnu's ls, đặt cược tốt nhất của bạn là hai cuộc gọi liên tiếp đến findvới -maxdepth n/ -mindepth nvà -type tvới các tùy chọn phù hợp.
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
Để sao chép tệp, với mục tiêu trước tiên, bạn sẽ phải viết một tập lệnh lưu đối số đầu tiên, sau đó sử dụng shiftvà nối thêm đối số vào cuối.
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
Xem ra!
Nếu bạn đang dự định sử dụng chúng cùng nhau - nghĩa là thu thập danh sách từ findhoặc ls(có thể bằng cách sử dụng xargs) và chuyển nó đến cp(hoặc cptrình bao bọc), bạn nên biết những nguy hiểm nằm trong danh sách phân tích tệp (về cơ bản, tên tệp có thể chứa các ký tự như dòng mới có thể làm rối kịch bản của bạn). Cụ thể, nhìn vào find's -execvà -print0tùy chọn và xargs' s -0lựa chọn.
Một công cụ thay thế để sao chép hiệu quả cây thư mục.
Bạn có thể muốn xem xét sử dụng rsyncthay thế; nó có rất nhiều chức năng có thể làm cho công việc của bạn dễ dàng hơn.
lscó--group-directories-firstcông tắc.