Lệnh truncate trong Linux: Cách để xóa hoặc cắt bớt nội dung tệp

Tác giả: VPS chính hãng 22 tháng 09, 2023

Dọn dẹp hệ thống các tập tin, dữ liệu vô dụng và dọn dẹp đĩa lưu trữ của hệ điều hành là một trong những công việc hàng ngày của chúng ta. Có thể bạn đã xảy ra trường hợp không cần dữ liệu tệp, và mặt khác việc tạo một tệp mới với các quyền và quyền sở hữu chính xác là một công việc tốn thời gian. Bạn sẽ làm gì trong tình huống này? Xóa file và thư mục chứa nhiều dữ liệu và tạo file mới? Không, đây không phải là ý tưởng hay khi bạn có thời gian hạn chế. Ngoài ra, trong một số trường hợp, việc xóa file còn gây ra lỗi và sự cố trong hoạt động của chương trình. Giải pháp cho vấn đề này là sử dụng lệnh truncate để tăng tốc tác vụ cho người dùng Linux. Lệnh truncate mở rộng hoặc giảm kích thước tệp trong Linux để người dùng có thể xóa hoặc cắt bớt nội dung của tệp mà không cần phải đặt quyền sở hữu. Theo dõi bài viết này để biết cách xóa hoặc cắt bớt nội dung tệp bằng lệnh truncate trong Linux.

Cài đặt công cụ dòng lệnh truncate trong Linux

Công cụ truncate có sẵn theo mặc định trong hầu hết các bản phân phối Linux. Để đảm bảo rằng bản phân phối Linux bạn đang sử dụng hỗ trợ truncate , hãy kiểm tra phiên bản cắt ngắn bằng cách chạy lệnh sau:

truncate --version

Nếu đầu ra không cung cấp thông tin về phiên bản của công cụ truncate, có thể kết luận rằng hệ điều hành của bạn không hỗ trợ công cụ này trong Linux. Vì vậy hãy cài đặt gói Coreutils để tận dụng tính năng này:

sudo apt-get install coreutils

Lệnh truncate để cắt ngắn tệp trong Linux

Linux phổ biến và nó không chỗ cho những lo lắng của người dùng khi đã có sự hỗ trợ của các công cụ đa dạng. Những tính năng này khuyến khích người dùng mua VPS Linux vì người dùng có thể quản lý máy chủ của họ một cách tối ưu bằng nhiều lệnh Linux khác nhau. Dưới đây là hướng dẫn cắt ngắn tệp bằng lệnh truncate trong Linux.

Công cụ dòng lệnh truncate được sử dụng để thay đổi kích thước của tệp, cho phép người dùng giảm hoặc mở rộng nội dung của tệp đến một kích thước được chỉ định, hoặc xóa hoàn toàn nội dung của tệp bằng cách giữ quyền đối với tệp. Bạn phải có quyền write để cắt bớt tập tin. Cú pháp chung để cắt bớt tệp bằng lệnh truncate như sau:

truncate -s 0 filename

Giải thích:

  • -s 0: Chỉ định kích thước mới cho file. Trong trường hợp này, tùy chọn -0 đặt kích thước tệp thành 0 để xóa tất cả nội dung.
  • Filename: Tên file bạn muốn cắt bớt.

Hãy cẩn thận khi sử dụng lệnh truncate vì không có giải pháp nào có thể khôi phục thông tin đã xóa nếu bạn xóa nội dung của tệp. Do đó, trước khi sử dụng lệnh truncate bạn nên tạo bản sao lưu dữ liệu của mình. Đồng thời việc cắt bớt tệp là không thể đảo ngược trừ khi bạn có bản sao lưu nội dung gốc của tệp.

Để kiểm tra kích thước và đặt quyền của tệp, hãy sử dụng lệnh sau:

lslh filename

Lệnh truncate trong linux hỗ trợ nhiều tùy chọn khác nhau để thay đổi kích thước tệp mà chúng tôi sẽ hướng dẫn như sau:

Xóa tất cả nội dung của tệp bằng lệnh truncate trong Linux

Bằng cách đặt kích thước tệp mong muốn thành (0), tất cả nội dung của tệp sẽ bị xóa:

truncate -s 0 filename

Chạy lệnh sau để xóa dung lượng ổ đĩa chứa nội dung của tệp nhật ký:

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

Thu nhỏ kích thước tệp bằng lệnh truncate

Để giảm kích thước tệp xuống kích thước mong muốn, hãy sử dụng tùy chọn “” cùng với lệnh truncate. Kết quả là nội dung bổ sung của tập tin sẽ bị xóa. Ví dụ: nếu bạn muốn giảm kích thước tệp xuống 200K byte, hãy sử dụng lệnh sau:

truncate -s -200K example.txt

Lệnh truncate làm giảm kích thước của tệp và không hỗ trợ cắt bớt dựa trên các ký tự hoặc mẫu cụ thể.

Mở rộng kích thước tệp bằng lệnh truncate trong Linux

Đôi khi, bạn phải tạo một tệp lớn để lưu trữ và duy trì các báo cáo và dữ liệu hàng loạt. Ngoài việc tạo các tệp lớn, bạn có thể tăng kích thước của tệp hiện có. Việc sử dụng tùy chọn “+” cùng với lệnh truncate sẽ khiến lệnh truncate mở rộng kích thước tệp bạn muốn đến một kích thước được chỉ định. Ví dụ: nếu bạn muốn mở rộng kích thước tệp từ 200K byte lên 400K byte, bạn nên chạy lệnh sau:

truncate -s +200k example.txt

Chỉ định kích thước tệp bằng lệnh truncate trong Linux Ubuntu

Lệnh truncate trong Linux Ubuntu cho phép người dùng điều chỉnh kích thước tệp theo ý muốn và quản lý nội dung của tệp theo cách này. Nếu bạn muốn thay đổi kích thước tệp thành một kích thước cụ thể, chẳng hạn từ 100 đến 200 byte, hãy xem xét ví dụ sau:

truncate -s 200 example.txt
Nhiều tùy chọn thay đổi kích thước tệp với lệnh truncate trong Linux

Nhiều tùy chọn thay đổi kích thước tệp với lệnh truncate trong Linux

Sử dụng :> hoặc > chuyển hướng shell để cắt bớt tập tin

Hầu hết người dùng Linux thích sử dụng > hoặc :> để chuyển hướng Shell để xóa nội dung tệp. Bởi vì một trong những cách dễ nhất để làm trống nội dung tệp là trong các shell hiện đại như Bash và Zsh. Cú pháp chính để xóa nội dung tệp thông qua chuyển hướng như sau:

: > filename

hoặc:

> filename

Giải trình:

  • (:): nó đã thay thế lệnh “true” và có chức năng tương tự như lệnh “true”.
  • (>:): nó chuyển hướng đầu ra tới tệp đã chỉ định.
  • Filename: Tên file bạn muốn cắt bớt.

Do đó, thay vì lệnh trước, bạn có thể sử dụng lệnh sau để cắt bớt tệp trong linux:

true > filename

Lưu ý: Lệnh true không hiển thị đầu ra.

Kết hợp cat và /dev/null để xóa nội dung tệp

Để xóa nội dung của tệp, bạn có thể chạy lệnh cat kết hợp với /dev/null, như sau:

cat /dev/null > filename

Lệnh echo để xóa nội dung của tệp

Lệnh echo là một trong những lệnh hữu ích để xóa nội dung của file trong Linux, cụ thể như sau:

echo > filename

hoặc:

echo "" > filename

Tùy chọn “-n” được sử dụng cùng với lệnh echo để cắt bớt tệp và ngăn việc thêm dòng mới:

echo -n > filename
Lệnh echo dùng để xóa tệp trong Linux

Lệnh echo dùng để xóa tệp trong Linux

Tại sao không thể áp dụng chuyển hướng shell cho tệp cắt bớt có đặc quyền sudo?

Như chúng tôi đã đề cập, bạn phải có quyền ghi (write) để cắt bớt tệp. Đó là lý do tại sao nhiều người dùng thực thi lệnh bằng sudo nhưng đôi khi họ gặp phải lỗi “Permission denied”. Để giải quyết vấn đề này, bạn có thể chạy shell mới bằng đặc quyền sudo và chạy các lệnh bên trong shell thông qua tùy chọn” -c”:

sudo sh -c '> filename'

=>> Cách giải quyết lỗi Permission Denied trong Linux

Trong bài viết này, VPS Chính hãng đã chia sẻ các lệnh khác nhau để cắt bớt tệp và xóa nội dung của tệp với lệnh truncate trong Linux. Bây giờ, bạn đã có thể cắt bớt tệp mong muốn của mình theo bất kỳ cách nào bạn muốn. Hãy chia sẻ ở dưới phần bình luận nếu bạn biết những cách khác để xóa nội dung tệp mà không cần phải xóa tệp và các quyền đã đặt của tệp. Cảm ơn đã theo dõi bài viết!