Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Kiểm tra số file, số folder, gồm tất cả các thưc mục con trong thư mục

ICT

A. KHÔNG LOẠI TRỪ

Để kiểm tra tổng số file và tổng số thư mục, bao gồm toàn bộ các thư mục con trong đường dẫn
/mnt/data/web_data/std, anh thực hiện như sau (chạy với quyền root hoặc user có quyền đọc):


1. Tổng số file (đệ quy toàn bộ)

 
find /mnt/data/web_data/std -type f | wc -l

Ý nghĩa:

  • find ... -type f : tìm tất cả file thường (regular file)

  • wc -l : đếm số dòng → chính là số file


2. Tổng số thư mục (đệ quy toàn bộ)

 
find /mnt/data/web_data/std -type d | wc -l

Lưu ý:

  • Kết quả có bao gồm thư mục gốc /mnt/data/web_data/std

  • Nếu muốn loại trừ thư mục gốc, trừ đi 1:

 
expr $(find /mnt/data/web_data/std -type d | wc -l) - 1

3. Kiểm tra cả file + folder trong một lệnh (tách rõ)

 
echo "Files: $(find /mnt/data/web_data/std -type f | wc -l)"
echo "Dirs : $(find /mnt/data/web_data/std -type d | wc -l)"

4. Kiểm tra nhanh, nhẹ hơn (không phân loại file/folder)

Nếu chỉ cần tổng số inode bên trong (file + folder):

 
find /mnt/data/web_data/std | wc -l

→ Cách này nhanh, nhưng không tách file và thư mục.


5. Nếu thư mục rất lớn (hàng triệu file) – cách tối ưu hơn

 
find /mnt/data/web_data/std -xdev -type f | wc -l
find /mnt/data/web_data/std -xdev -type d | wc -l

-xdev giúp:

  • Không traverse sang filesystem khác (ổ mount khác)

  • An toàn và ổn định cho server QMS / storage lớn


6. Kiểm tra chi tiết theo từng cấp (nếu cần audit)

find /mnt/data/web_data/std -maxdepth 1 -type d -exec sh -c '
 for d; do
   echo "== $d =="
   echo "  Files: $(find "$d" -type f | wc -l)"
   echo "  Dirs : $(find "$d" -type d | wc -l)"
 done
' sh {} +
 

B. LOẠI TRỪ THƯ MỤC CON CỤ THỂ

Để đếm tổng số file và tổng số thư mục (bao gồm toàn bộ thư mục con) trong
/mnt/data/web_data nhưng loại trừ hoàn toàn thư mục
/mnt/data/web_data/std, anh sử dụng các lệnh sau:


1. Đếm tổng số file (loại trừ /std)

 

find /mnt/data/web_data \
 -path /mnt/data/web_data/std -prune -o \
 -type f -print | wc -l


2. Đếm tổng số thư mục (loại trừ /std)

 

find /mnt/data/web_data \
 -path /mnt/data/web_data/std -prune -o \
 -type d -print | wc -l
 

Lưu ý:

  • Kết quả có bao gồm thư mục gốc /mnt/data/web_data

  • Nếu muốn loại trừ luôn thư mục gốc, trừ đi 1:

 
expr $(find /mnt/data/web_data -path /mnt/data/web_data/std -prune -o -type d -print | wc -l) - 1

3. Hiển thị file + folder rõ ràng trong một lần chạy

 

echo "Files: $(find /mnt/data/web_data -path /mnt/data/web_data/std -prune -o -type f -print | wc -l)"
echo "Dirs : $(find /mnt/data/web_data -path /mnt/data/web_data/std -prune -o -type d -print | wc -l)"
4. Kiểm tra nhanh tổng inode (file + folder, trừ /std)

 

find /mnt/data/web_data \
 -path /mnt/data/web_data/std -prune -o \
 -print | wc -l
5. Phiên bản an toàn cho storage lớn / server QMS

 

find /mnt/data/web_data -xdev \
 -path /mnt/data/web_data/std -prune -o \
 -type f -print | wc -l

find /mnt/data/web_data -xdev \
 -path /mnt/data/web_data/std -prune -o \
 -type d -print | wc -l
 

-xdev giúp tránh traverse sang filesystem khác nếu có mount phụ bên trong.


6. Lỗi thường gặp (để tránh)

❌ Sai:

 
find /mnt/data/web_data -type f ! -path "/mnt/data/web_data/std/*" 

Vẫn traverse vào std, chỉ là không in ra kết quả → rất chậm, sai mục tiêu.

✔️ Đúng:

  • Dùng -prune để cắt nhánh ngay từ đầu