Câu hỏi đơn giản tôi chắc chắn. Tôi đã thấy một câu trả lời chỉ ra cách thực hiện bao gồm các thư mục con, nhưng tôi muốn biết có bao nhiêu tệp (không phải thư mục) chỉ trong thư mục hiện tại. Cảm ơn.
Câu hỏi đơn giản tôi chắc chắn. Tôi đã thấy một câu trả lời chỉ ra cách thực hiện bao gồm các thư mục con, nhưng tôi muốn biết có bao nhiêu tệp (không phải thư mục) chỉ trong thư mục hiện tại. Cảm ơn.
Câu trả lời:
ls -F |grep -v / | wc -l
ls -F
liệt kê tất cả các tệp và chỉ báo nối thêm (một trong * / => @ |) vào các mục grep -v /
giữ tất cả các chuỗi de không chứa dấu gạch chéo wc -l
đếm dòngHãy thử oneliner này:
find -maxdepth 1 -type f | wc -l
Thử đi
ls -al | grep ^[-] | wc -l
ls -al
- liệt kê tất cả các tập tin với định dạng danh sách dàigrep ^[-]
- tìm kiếm chuỗi bắt đầu bằng "-" là ký hiệu để biểu thị tệp thông thường khi danh sách tệp có ls -alwc -l
- dòng đếm-
bằngl
Tôi chỉ muốn thêm câu trả lời của thom vì tôi thích chơi với Bash . Nó đi từ đây:
echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"
Bellow là một kết quả ví dụ của /data
thư mục của tôi :
Directory /data has 580569 file(s).
Và dưới đây là những lời giải thích của tôi:
echo double-quoted-message
sẽ in một thông điệp mong muốn.$(any-desirable-valid-command)
bên trong thông báo được trích dẫn kép của một echo
sẽ in kết quả thực hiện lệnh liên quan.pwd
sẽ in thư mục hiện tại.ls -F
là để liệt kê tất cả các tệp và chỉ báo nối thêm (một trong * / => @ |) vào các mục. Tôi đã sao chép điều này từ câu trả lời của thom .grep -v /
là một lệnh để tìm kiếm văn bản đơn giản, -v /
tham số sẽ giữ tất cả các chuỗi không chứa dấu gạch chéo.wc -l
sẽ in dòng đếm.Tôi biết câu hỏi này đã 3 tuổi, tôi không thể thôi thúc thêm câu trả lời khác.