• Thông Tin Cần Biết
  • Hướng Dẫn
  • Câu Hỏi Thường Gặp
  • Thông Tin Cần Biết
  • Hướng Dẫn
  • Câu Hỏi Thường Gặp
Home/Hướng Dẫn/Linux/Tìm và xóa file Zero-Byte trong Linux

Tìm và xóa file Zero-Byte trong Linux

179 lượt xem 0

1. Tổng quan

Trong hướng dẫn này, chúng ta sẽ xem xét các cách xóa tệp có kích thước bằng 0 trong Linux.

2. Tìm tệp 0 byte

Trước tiên, hãy tìm kiếm tất cả các tệp 0 byte trong thư mục chính của chúng tôi bằng lệnh find:

$ find /home/clienthost -size 0
/home/clienthost/log
/home/clienthost/test/logging.log
/home/clienthost/job.txt

tìm kiếm trong tất cả các tệp, thư mục và thư mục con bắt đầu từ đường dẫn chúng tôi đã chỉ định. Tùy chọn -size giới hạn các tệp được tìm thấy ở những tệp sử dụng ít hơn, nhiều hơn hoặc chính xác n đơn vị không gian, làm tròn lên. Nếu chúng ta không chỉ định bất kỳ đơn vị nào thì đơn vị mặc định cho kích thước sẽ là số khối được sử dụng. Vì vậy, nếu chúng ta muốn các tệp có kích thước chính xác là 0 byte, chúng ta nên sử dụng hậu tố ‘c’ dành cho byte:

$ find /home/clienthost -size 0c

3. Sử dụng lệnh  find

Nếu chúng ta có một danh sách dài các tệp 0 byte, chúng ta có thể tìm kiếm chúng bằng lệnh find và sử dụng lệnh -delete để xóa tất cả các tệp tìm thấy:

$ find /home/clienthost -size 0c -delete

Tốt hơn hết bạn nên kiểm tra kết quả tìm thấy trước khi sử dụng tùy chọn -delete:

$ find /home/clienthost -size 0c

Lưu ý rằng find sẽ đi đến tất cả các thư mục và thư mục con (trong trường hợp của chúng tôi là thư mục kiểm tra) và xóa tất cả các tệp bắt đầu từ /home/clienthost. Chúng ta có thể giới hạn chức năng này bằng cách đặt tùy chọn -maxdepth.

3.1. Sử dụng lệnh -maxdepth

Với -maxdepth tùy chọn cho lệnh find tìm kiếm các tệp có giới hạn về độ sâu bắt đầu từ /home/clienthost:

$ find /home/clienthost -maxdepth 1 -size 0c -delete

Hãy kiểm tra các tập tin chưa bị xóa:

$ find /home/clienthost -size 0c 
/home/clienthost/test/logging.log

Bởi vì chúng ta thiết lập -maxdepth, find không vào thư mục kiểm tra lần này. Vì vậy, tệp log.log vẫn tồn tại.

3.2. Sử dụng lệnh -name

Nếu chúng ta chỉ muốn tìm kiếm trong thư mục hiện tại và lọc các tệp có tên cụ thể, chúng ta có thể sử dụng tùy chọn -name:

$ find /home/clienthost -maxdepth 1 -size 0c -name "log*" -delete

Lệnh này chỉ xóa các tệp có tên bắt đầu bằng ‘log’.

3.3. Sử dụng lệnh -exec

Trong các phiên bản tìm kiếm cũ hơn, tùy chọn -delete có thể không khả dụng. Trong trường hợp này, chúng ta có thể sử dụng tùy chọn -exec. Ở đây, -exec cho phép chúng ta thực thi lệnh rm và xóa các file được tìm thấy:

$ find /home/clienthost -maxdepth 1 -size 0c -exec rm '{}' ;

Chuỗi ‘{}’ sau -exec được thay thế bằng tên tệp tìm thấy. Lưu ý rằng chúng tôi đặt các dấu ngoặc nhọn trong dấu ngoặc đơn để bảo vệ chúng khỏi bị hiểu là dấu câu của tập lệnh shell.

Ngoài ra, hãy lưu ý rằng ở cuối lệnh và tất cả các đối số bắt buộc của nó, chúng ta nên sử dụng dấu ‘;’ để chỉ định phần cuối của lệnh. Chúng tôi cũng bảo vệ dấu chấm phẩy khỏi bị shell mở rộng bằng cách sử dụng ”. Việc sử dụng dấu ngoặc đơn xung quanh dấu chấm phẩy (‘;’) cũng mang lại sự bảo vệ tương tự.

3.4. Thứ tự lệnh

Thứ tự của các lệnh để lọc các tập tin và xóa chúng rất quan trọng. Do đó, nếu chúng ta sử dụng tùy chọn -delete hoặc -exec trước khi giới hạn kích thước file, find sẽ bỏ qua tất cả các tùy chọn khác. Vì vậy, tất cả các tập tin trong thư mục sẽ bị xóa:

$ find /home/clienthost -delete -maxdepth 1 -size 0c 

4. Kết luận

Trong bài viết này, chúng tôi đã thảo luận về các phương pháp xóa tệp có kích thước bằng 0.

Chúng ta có thể sử dụng lệnh find để lọc kích thước tệp bằng tùy chọn -size, sau đó xóa tất cả các tệp bằng tùy chọn -delete. Nếu tùy chọn -delete không khả dụng, chúng ta có thể sử dụng -exec và thực thi lệnh rm trên tất cả các tệp 0 byte.

 

Chúc bạn thành công!

Tags:-exec-name-maxdepth$ find

Bài viết này hữu ích không?

Yes  No
Bài viết liên quan
  • Ubuntu – Hướng dẫn mở rộng (Resize) dung lượng disk default
  • Ubuntu 22.04 – Add User
  • Ubuntu 22.04 – Enable root user
  • CentOS 8 – Fix lỗi Failed to download metadata for repo ‘AppStream’
  • CentOS 7 – Fix lỗi Not found trying other mirror
  • Tổng hợp lệnh RPM trên Linux

Không tìm thấy câu trả lời của bạn? Liên hệ

Linux
  • Tìm và xóa file Zero-Byte trong Linux
  • Reset password root trên CentOS 7
  • How to Install Debian 11
  • Cài đặt ConfigServer Security & Firewall (CSF) trên CentOS
  • Ubuntu 20.04 – Thiết lập địa chỉ IP tĩnh (Static IP Address)
  • Xử lý lỗi full Inode trên server DirectAdmin
  • Tổng hợp lệnh RPM trên Linux
  • CentOS 7 – Fix lỗi Not found trying other mirror
  • CentOS 8 – Fix lỗi Failed to download metadata for repo ‘AppStream’
  • Ubuntu 22.04 – Enable root user
  • Ubuntu 22.04 – Add User
  • Ubuntu – Hướng dẫn mở rộng (Resize) dung lượng disk default
All Categories
  • WordPress Website
  • Quản trị Website
  • Quản lý tài khoản
  • Tên miền
  • Chứng chỉ số SSL
  • Email Hosting Server
  • Web Hosting
  • VPS / Server
  • Plesk
  • DirectAdmin
  • Networking
  • Linux
  • Windows
© BizMaC | Rainbow E-Commerce