Android

Cách cắt bớt tập tin (trống) trong linux

Bố Thí Tạo Phước Đúng Cách Hưởng Phước Cả Đời - Thầy Thích Pháp Hòa (rất hay)

Bố Thí Tạo Phước Đúng Cách Hưởng Phước Cả Đời - Thầy Thích Pháp Hòa (rất hay)

Mục lục:

Anonim

Trong một số trường hợp, bạn có thể muốn cắt bớt (trống) một tệp hiện có thành độ dài bằng không. Nói một cách đơn giản, cắt ngắn một tệp có nghĩa là xóa nội dung tệp mà không xóa tệp.

Cắt bớt tệp nhanh hơn và dễ dàng hơn nhiều so với xóa tệp, tạo lại tệp và đặt quyền và quyền sở hữu chính xác. Ngoài ra, nếu tệp được mở bởi một quy trình, việc xóa tệp có thể khiến chương trình sử dụng bị hỏng.

Hướng dẫn này giải thích cách cắt các tệp thành kích thước không trong các hệ thống Linux bằng cách sử dụng chuyển hướng shell và lệnh truncate .

Chuyển hướng vỏ

Phương pháp dễ nhất và được sử dụng nhiều nhất để cắt bớt các tệp là sử dụng toán tử chuyển hướng shell.

Định dạng chung để cắt bớt các tệp bằng cách sử dụng chuyển hướng là:

: > filename

Hãy phá vỡ lệnh:

  • Dấu hai chấm có nghĩa là true và không tạo ra đầu ra. Toán tử chuyển hướng > chuyển hướng đầu ra của lệnh trước đến tệp đã cho. filename , tệp bạn muốn cắt bớt.

Nếu tập tin tồn tại, nó sẽ bị cắt ngắn về không. Nếu không, tập tin sẽ được tạo ra.

Thay vì : cũng có thể sử dụng một lệnh khác không tạo ra đầu ra.

Dưới đây là một ví dụ về việc sử dụng lệnh cat để xuất nội dung của thiết bị /dev/null , chỉ trả về một ký tự cuối tập tin:

cat /dev/null > filename

Một lệnh khác có thể được sử dụng là echo . Tùy chọn -n yêu cầu echo không nối thêm một dòng mới:

echo -n > filename

Trên hầu hết các shell hiện đại như Bash hoặc Zsh, bạn có thể bỏ qua lệnh trước biểu tượng chuyển hướng và sử dụng:

> filename

Để có thể cắt bớt một tập tin, bạn cần có quyền ghi trên tập tin. Thông thường, bạn sẽ sử dụng sudo cho việc này, nhưng các đặc quyền gốc nâng cao không áp dụng cho chuyển hướng. Đây là một ví dụ:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Có một số giải pháp cho phép chuyển hướng với sudo . Tùy chọn đầu tiên có thể chạy shell mới với sudo và thực thi lệnh bên trong shell đó bằng cờ -c :

sudo sh -c '> filename'

Một tùy chọn khác là chuyển đầu ra sang lệnh tee , nâng cao các đặc quyền tee bằng sudo và ghi đầu ra trống vào một tệp đã cho:

: | sudo tee filename

lệnh truncate

truncate là một tiện ích dòng lệnh cho phép bạn thu nhỏ hoặc mở rộng kích thước của tệp thành một kích thước nhất định.

Cú pháp chung để cắt các tệp thành kích thước không bằng lệnh truncate , như sau:

truncate -s 0 filename

Tùy chọn -s 0 đặt kích thước tệp bằng không.

Ví dụ: để làm trống nhật ký truy cập Nginx bạn sẽ sử dụng:

sudo truncate -s 0 /var/log/nginx/access.log

Làm trống tất cả các tệp nhật ký

Theo thời gian, ổ đĩa của bạn có thể bị lộn xộn với rất nhiều tệp nhật ký lớn chiếm dung lượng đĩa lớn.

Lệnh sau sẽ làm trống các tệp kết thúc bằng,.log trong thư mục /var/log :

sudo truncate -s 0 /var/log/**/*.log

Một lựa chọn tốt hơn sẽ là xoay, nén và xóa các tệp nhật ký bằng công cụ logrotate .

Phần kết luận

Để cắt một tệp trong Linux, hãy sử dụng toán tử chuyển hướng > theo sau là tên tệp.

thiết bị đầu cuối cắt