Nếu phân tích cú pháp đầu ra ls
là nguy hiểm vì nó có thể phá vỡ một số ký tự vui nhộn (dấu cách \n
, ...), cách tốt nhất để biết số lượng tệp trong một thư mục là gì?
Tôi thường dựa vào find
để tránh phân tích cú pháp này, nhưng tương tự, find mydir | wc -l
sẽ phá vỡ vì những lý do tương tự.
Tôi đang làm việc trên Solaris ngay bây giờ, nhưng tôi đang tìm kiếm một câu trả lời là có thể di chuyển qua các đơn vị khác nhau và các vỏ khác nhau càng tốt.
find
sẽ giúp bạn nhận được số lượng tệp đệ quy (sử dụng -maxdepth 1
nếu bạn không muốn điều đó. find mydir -maxdepth 1 -type f -printf \\n | wc -l
nên xử lý các ký tự đặc biệt trong tên tệp, vì chúng không bao giờ được in ở vị trí đầu tiên.