Cách tạo tệp mới trên Linux với lệnh touch | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách tạo tệp mới trên Linux với lệnh touch

Chia sẻ kiến thức 08/03/2022

Tạo tệp mới trong terminal Linux bằng lệnh touch giúp bạn kiểm soát dấu thời gian (timestamp) của tệp.

Tạo tệp mới trong terminal Linux bằng lệnh touch giúp bạn kiểm soát dấu thời gian (timestamp) của tệp.

 Người dùng Linux đôi khi cần phải tạo một tệp mới trên hệ thống của họ. Cho dù đó là để ghi chú, viết code hay đơn giản là để xác thực tệp trong quá trình lập trình, lệnh touch là tiện ích tạo tệp duy nhất bạn cần.

Lệnh này giúp bạn tạo tệp và quản lý dấu thời gian trên Linux chỉ trong tích tắc. Trong bài viết này, FUNiX sẽ giới thiệu chi tiết về lệnh touch, cùng với các chức năng của nó.

Lệnh touch là gì?

Chức năng chính của lệnh touch là cập nhật và quản lý dấu thời gian của tệp. Nếu bạn có một chút kinh nghiệm làm việc trên Linux, bạn có thể đã biết rằng trên các bản phân phối Linux, mọi tệp đều có các dấu thời gian được liên kết với chúng.

Dấu thời gian chịu trách nhiệm lưu trữ thông tin liên quan đến tệp như thời điểm tệp được sửa đổi, truy cập hoặc thay đổi lần cuối. Các dấu thời gian này là mtime, atime và ctime. Tất cả thông tin này có thể được sửa đổi một cách dễ dàng với lệnh touch.

 

Cách sử dụng lệnh touch

Cách sử dụng cơ bản nhất của lệnh touch là tạo các tệp trống mới. Không giống như lệnh cat nhắc bạn thêm nội dung vào tệp của mình tại thời điểm tạo, lệnh touch tạo một tệp trống mà không có lời nhắc như vậy.

Điều này có lợi cho các nhà phát triển phần mềm, những người phải liên tục tạo các tệp mới, để viết code hoặc xác nhận sự tồn tại của một tệp cụ thể.

Cú pháp cơ bản

Cú pháp cơ bản của lệnh touch là:

touch [options] [filename]

Bạn có thể sử dụng các chức năng của lệnh touch bằng cách chuyển các đối số (argument) và cờ (flag) khác nhau thay cho các options, trong khi filename là tên của tệp mà bạn muốn tạo.

Tạo tệp mới với touch

Để tạo một tệp trống, hãy nhập touch, sau đó là tên tệp.

touch newemptyfile

Lệnh nói trên sẽ tạo một tệp mới có tên là newemptyfile trong thư mục làm việc hiện tại. Bạn có thể xác minh rằng tệp đã được tạo bằng lệnh ls .

Tương tự, bạn có thể tạo nhiều tệp hoàn toàn bằng cách chuyển các tên tệp được phân tách bằng ký tự khoảng trắng.

touch fileone filetwo filethree

Thay đổi dấu thời gian tệp

Như đã đề cập ở trên, có ba dấu thời gian được liên kết với mọi tệp trên bộ nhớ của bạn.

  1. Thời gian truy cập (atime)
  2. Thời gian sửa đổi (mtime)
  3. Thời gian thay đổi (ctime)

Bạn có thể thay đổi atime và ctime của bất kỳ tệp nào trên hệ thống bằng cách sử dụng lệnh touch.

Để cập nhật atime và ctime của tệp, hãy sử dụng cờ (flag) -a với lệnh touch.

touch -a textfile

Lệnh trên sẽ thay thế  atime và ctime của tệp bằng thời gian hiện tại. Nếu tệp không tồn tại, touch sẽ tạo tệp mới và gán dấu thời gian cho tệp đó.

Bạn cũng có thể thay đổi thời gian sửa đổi (mtime) của tệp bằng cách sử dụng cờ -m.

touch -m textfile

Bạn có thể kiểm tra xem dấu thời gian có bị thay đổi hay không bằng cách đưa ra  lệnh stat với tên tệp làm đối số.

stat textfile

Đầu ra:

File: `textfile'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-04-12 16:59:45.000000000 +0000
Modify: 2021-04-12 16:57:59.000000000 +0000
Change: 2021-04-12 17:02:43.000000000 +0000

Trong đoạn mã trên, bạn có thể thấy rằng đầu ra hiển thị atime, mtime và ctime của tệp được chỉ định.

Sử dụng cờ -c với lệnh touch sẽ không tạo tệp mới nếu tệp đó không tồn tại. Thay vào đó, nó chỉ được sử dụng để gán dấu thời gian mới cho các tệp đã tồn tại.

touch -c existfile

Thêm dấu thời gian tùy chỉnh vào tệp

Những người muốn đặt dấu thời gian sửa đổi tùy chỉnh (custom modification timestamps) cho tệp của họ có thể dùng các tùy chọn -c và -t. Sử dụng định dạng sau để làm điều đó:

touch -c -t YYDDHHMM filename

… trong đó YYDDHHMM là ngày và giờ bạn muốn đặt và filename là tên tệp bạn muốn sửa đổi.

Để thay đổi dấu thời gian của tệp theo cách thân thiện hơn với người dùng, hãy sử dụng cờ -d với lệnh touch. Bạn sẽ phải chỉ định thời gian mà bạn muốn đặt bằng ngôn ngữ đơn giản.

touch -d "5 hours ago" newfile

Bằng cách kết hợp lệnh date với thao tác touch, bạn có thể thêm dấu thời gian sửa đổi mới phù hợp với dấu thời gian cũ.

touch -d "$(date -r filename) - 5 hours" existfile

Nếu dấu thời gian của tệp là 2:00 chiều, thì việc thực hiện lệnh nói trên sẽ đặt 9:00 sáng làm mtime mới cho tệp.

Bạn cũng có thể đặt dấu thời gian sửa đổi tùy chỉnh cho các tệp tại thời điểm tạo. Cờ -t cho phép bạn làm điều đó: 

touch -t YYMMDDHHMM.SS filename

Ví dụ: để tạo tệp mới với dấu thời gian là ngày 12 tháng 12 năm 2020, 09:00:33 chiều, hãy sử dụng lệnh sau.

touch -t 202012120900.33 newfile

Nếu bạn không thể tìm ra đường dẫn đến tệp mà bạn muốn sửa đổi, hãy sử dụng lệnh find để tìm kiếm các tệp có tên tương tự.

Bạn cũng có thể đặt riêng mtime và atime của tệp trong quá trình tạo. Sử dụng các cờ -a và -m với lệnh.

Để chỉ định thời gian truy cập (atime) cho một tệp mới tại thời điểm tạo:

touch -a -t 202012120900.33 newfile

Lệnh sau chỉ định thời gian sửa đổi (mtime) cho tệp mới được tạo.

touch -m -t 202012120900.33 newfile

Sao chép dấu thời gian từ các tệp khác

Để sao chép dấu thời gian của bất kỳ tệp nào khác, hãy sử dụng cờ -r với lệnh touch. Cú pháp mặc định của lệnh là:

touch -r originalfile copiedfile

trong đó các dấu thời gian của originalfile đang được sao chép vào copiedfile.

Thay đổi thông tin tệp trong Linux

Hy vọng bài viết này đã cung cấp những thông tin cần thiết giúp bạn sử dụng lệnh touch để quản lý dấu thời gian của một tệp trong Linux một cách thành thạo!

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/how-to-create-new-files-on-linux-using-touch/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại