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.
- Thời gian truy cập (atime)
- Thời gian sửa đổi (mtime)
- 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/
Bình luận (0
)