Cách cắt bớt tập tin trong Linux

Tác giả Security+, T.Năm 04, 2024, 03:03:13 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cắt bớt một tập tin có nghĩa là giảm kích thước của nó bằng cách xóa một số nội dung của nó. Việc cắt bớt tệp nhanh hơn và đơn giản hơn nhiều so với việc xóa tệp, tạo lại tệp cũng như đặt quyền và quyền sở hữu chính xác.


Khi một tập tin bị cắt bớt, dữ liệu vượt quá điểm cắt cụ thể sẽ bị loại bỏ, nội dung thừa sẽ bị xóa. Việc cắt bớt rất hữu ích cho các tệp tuần tự, chẳng hạn như tệp văn bản, tệp nhật ký hoặc tệp cơ sở dữ liệu.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cắt bớt các tệp trong Linux bằng cách sử dụng chuyển hướng shell và lệnh truncate.

1. Điều kiện tiên quyết

  • Một hệ thống chạy Linux.
  • Gói coreutils được cài đặt cho truncatelệnh.
  • Truy cập vào thiết bị đầu cuối (Ctrl + Alt + T).
  • Một tài khoản người dùng có quyền root.

2. Cắt bớt tập tin thông qua toán tử chuyển hướng Shell

Chuyển hướng Shell, cụ thể là toán tử, là một tính năng trong các hệ điều hành> giống Unix cho phép người dùng chuyển hướng đầu ra của lệnh hoặc chương trình sang một tệp thay vì hiển thị nó trong thiết bị đầu cuối.

Có một số phương pháp cắt bớt tệp bằng toán tử chuyển hướng shell.

2.1. Sử dụng dấu hai chấm (:) làm lệnh Null

Ký hiệu dấu hai chấm ( :) thường được sử dụng làm lệnh giữ chỗ hoặc lệnh null trong tập lệnh shell và không tạo ra kết quả. Sử dụng lệnh sau để tạo một tệp trống hoặc cắt bớt tệp hiện có để làm cho nó trống:

Mã nguồn [Chọn]
: > filename
Trong lệnh, dấu hai chấm đóng vai trò là lệnh giữ chỗ hoặc lệnh null không làm gì cả. Biểu >tượng chuyển hướng đầu ra (không có gì trong trường hợp này) tới tệp được chỉ định bởi filename. Nếu tập tin tồn tại, nó sẽ bị ghi đè. Nếu tệp không tồn tại, một tệp mới sẽ được tạo.


Lệnh trên cắt bớt nội dung của tệp ví dụ về 0 trong khi vẫn giữ nguyên tệp.

Lưu ý: Đọc hướng dẫn của chúng tôi về lệnh tr, lệnh này dịch hoặc xóa các ký tự khỏi đầu vào tiêu chuẩn và ghi kết quả vào đầu ra tiêu chuẩn. trcó thể thực hiện các phép biến đổi văn bản khác nhau, bao gồm cả việc cắt bớt các bộ ký tự.

2.2. Sử dụng lệnh cat

Lệnh cat thường được sử dụng để nối và hiển thị nội dung của file. Trong trường hợp này, đây là một cách thuận tiện để truy cập thiết bị null và cắt bớt một tập tin.

Lệnh sau xuất nội dung của  /dev/null thiết bị, là ký tự cuối tệp và chuyển hướng nó đến tệp đã chỉ định:

Mã nguồn [Chọn]
cat /dev/null > filename

Lệnh cắt bớt tệp ví dụ và làm trống nội dung của nó bằng cách chuyển hướng đầu ra của thiết bị null sang tệp.

2.3. Chuyển hướng sử dụng echo

Lệnh echo hiển thị văn bản hoặc giá trị biến trong terminal. Việc thêm -n tùy chọn sẽ hướng dẫn echo không thêm ký tự dòng mới, ký tự này sẽ chuyển hướng một chuỗi trống sang tệp được chỉ định bằng cách sử dụng chuyển hướng shell. Cú pháp là:

Mã nguồn [Chọn]
echo -n > filename

Lệnh chuyển hướng một chuỗi trống đến tệp được chỉ định. Nếu file đã tồn tại thì nó sẽ bị ghi đè. Nếu tệp không tồn tại, một tệp mới sẽ được tạo. Trong ví dụ trên, nội dung của tệp sẽ bị xóa.

2.4. Chỉ sử dụng chuyển hướng

Hầu hết các shell hiện đại, chẳng hạn như Bash hoặc Zsh, cho phép bạn bỏ qua lệnh trước toán tử chuyển hướng và cắt bớt tệp. Cú pháp là:

Mã nguồn [Chọn]
> filename

Lệnh chuyển hướng đầu ra (trong trường hợp này, không có đầu ra vì không có lệnh trước) đến tệp ví dụ đã chỉ định và cắt bớt nó để làm cho nó trống.

Nếu tệp không tồn tại, lệnh sẽ tạo một tệp trống mới.

2.5. Cắt ngắn bằng sudo

Để cắt bớt một tập tin, bạn phải có quyền ghi trên tập tin. Mặc dù lệnh sudo cho phép bạn cắt bớt một tệp mà bạn không có quyền ghi, nhưng các đặc quyền gốc nâng cao không áp dụng cho chuyển hướng. Ví dụ: tệp sau ở dạng chỉ đọc, đó là lý do tại sao thao tác không thành công:


Lệnh không thành công và từ chối quyền cắt bớt tệp. Có một số tùy chọn để ghi đè hành vi này và cắt bớt tệp:

Chạy một shell mới. Bạn có thể thực thi lệnh chuyển hướng với tư cách là siêu người dùng trong shell mới để chuyển hướng quyền ghi:

Mã nguồn [Chọn]
sudo sh -c '> filename'

Phần này sh -c gọi một shell mới và thực thi lệnh trong shell đó sau khi bạn cung cấp mật khẩu root.

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

Mã nguồn [Chọn]
: | sudo tee filename

Lệnh null : cung cấp một đầu vào trống, được dẫn teeđến sudo. teeghi đầu vào trống đó vào đầu ra tiêu chuẩn và vào tệp được chỉ định bằng các đặc quyền nâng cao.

3. Cắt bớt tập tin thông qua lệnh cắt ngắn

Lệnh này truncate là một tiện ích cho phép người dùng thay đổi kích thước tệp theo kích thước được chỉ định hoặc xóa hoàn toàn nội dung của tệp. Tuy nhiên, truncatelệnh yêu cầu quyền hệ thống tệp thích hợp để sửa đổi tệp.

Tùy thuộc vào quyền của tệp và vị trí tệp, bạn có thể cần có đặc quyền quản trị hoặc sử dụng sudođể thực thi truncatevới các quyền nâng cao.

3.1. Xóa toàn bộ nội dung tệp

Cú pháp để xóa nội dung của tệp truncate là:

Mã nguồn [Chọn]
truncate -s 0 filename

Lệnh xóa tất cả nội dung khỏi tệp ví dụ đã chỉ định.

3.2. Cắt bớt tệp theo kích thước cụ thể

Sử dụng lệnh cắt ngắn để giảm kích thước tệp xuống một kích thước cụ thể. Giá trị mặc định là byte, có cú pháp sau:

Mã nguồn [Chọn]
truncate -s [number of bytes] filename
Đối với [number of bytes], chỉ định kích thước tệp mong muốn.


Trong ví dụ trên, lệnh cắt bớt kích thước của tệp đã chỉ định xuống còn 10 byte. Các đơn vị khác cũng được chấp nhận, chẳng hạn như K cho kilobyte, M cho megabyte, G cho gigabyte, v.v. Ví dụ: để giảm kích thước tệp xuống 10KB, hãy sử dụng cú pháp sau:

Mã nguồn [Chọn]
truncate -s 10K filename
3.3. Tăng kích thước tệp

Thêm dấu cộng hoặc dấu trừ trước kích thước để tăng hoặc giảm file theo mức đó. Ví dụ: để tăng kích thước tệp thêm 10 MB, hãy sử dụng cú pháp sau:

Mã nguồn [Chọn]
truncate -s +5M filename

Biểu thị +5M sự gia tăng kích thước thêm 5 megabyte. Dấu  + trước kích thước biểu thị mức tăng, trong khi  - dấu hiệu biểu thị mức giảm.

Việc thực hiện lệnh này sẽ tăng kích thước của tệp được chỉ định thêm 5 megabyte. Nếu ban đầu tệp có kích thước nhỏ hơn, lệnh sẽ thêm byte rỗng vào cuối tệp để đạt kích thước mới. Nếu tệp đã lớn hơn 5 megabyte, lệnh sẽ không có hiệu lực.

Hướng dẫn đã chỉ cho bạn cách cắt bớt các tệp trong Linux bằng cách sử dụng toán tử chuyển hướng shell >và truncatelệnh. Việc cắt bớt tệp rất hữu ích khi bạn muốn xóa nội dung khỏi tệp mà không xóa chính tệp đó.

Lệnh này thường được sử dụng cho các tệp nhật ký hoặc tệp cơ sở dữ liệu để quản lý kích thước tệp, hỗ trợ phân tích cú pháp tệp và cải thiện hiệu suất.