Touch Linux là lệnh cho phép cập nhật thời gian truy cập và thời gian sửa đổi của file mà không thay đổi nội dung bên trong file, đồng thời bạn cũng có thể nhanh chóng tạo ra các file trống khi cần. Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết cách sử dụng lệnh Touch để tạo file nhanh chóng và quản lý timestamp hiệu quả.
Những điểm chính
- Khái niệm: Hiểu rõ
touchLinux là lệnh dùng để cập nhật dấu thời gian hoặc tạo file rỗng nhanh chóng. - Các tùy chọn phổ biến: Nắm được các tùy chọn quan trọng như
-a,-m,-c,-dđể kiểm soát chính xác hành vi của lệnh. - Lợi ích khi dùng lệnh touch: Nắm rõ những lợi ích quan trọng khi sử dụng lệnh touch để cập nhật mốc thời gian hoặc tạo file.
- 8 ví dụ sử dụng thực tế: Thành thạo các cách dùng
touchtừ cơ bản đến nâng cao, như tạo file hàng loạt, chỉ cập nhậtatime/mtime, thiết lập thời gian cụ thể và đồng bộ timestamp. - Kỹ thuật nâng cao: Học cách kết hợp
touchvới lệnhfindđể xử lý hàng loạt thư mục con, giúp tự động hóa quy trình quản trị. - Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như lỗi “Permission denied”, cách kiểm tra timestamp chính xác và ảnh hưởng của
touchđến file đang mở.
Lệnh touch Linux là gì?
Lệnh touch trong Linux là lệnh dùng để thay đổi thời gian truy cập (access time) hoặc thời gian chỉnh sửa (modification time) của một file hiện có mà không làm thay đổi bất kỳ nội dung dữ liệu nào bên trong file đó. Trong trường hợp file được chỉ định chưa tồn tại trên hệ thống, lệnh touch sẽ tự động tạo ra một file rỗng với tên đó.

Nhờ sự linh hoạt trong việc cập nhật và tạo file, lệnh touch trở thành công cụ hỗ trợ tối ưu cho các quản trị viên hệ thống và lập trình viên khi làm việc với Ubuntu hay các bản phân phối Linux khác. Để sử dụng lệnh touch, bạn sử dụng cú pháp lệnh sau:
touch [TÙY_CHỌN]... [TÊN_FILE]...Trong đó:
- [TÙY_CHỌN] (OPTION): Là các tham số bổ sung để điều chỉnh hành vi của lệnh, ví dụ như chỉ thay đổi thời gian truy cập, không tạo file mới nếu chưa có,…
- [TÊN_FILE] (FILE): File mà bạn muốn thao tác.
Điểm mạnh của cú pháp này là bạn có thể áp dụng nhiều tùy chọn cùng lúc và liệt kê danh sách nhiều file để xử lý đồng thời trong một câu lệnh duy nhất.
Các tùy chọn sử dụng lệnh touch phổ biến
Bạn có thể xem nhanh các tùy chọn thường dùng của lệnh touch bằng cách mở trang trợ giúp với cú pháp:
man touchDưới đây là bảng liệt kê các tùy chọn sử dụng lệnh touch thường gặp:
| Tùy chọn | Mô tả | Ví dụ minh họa |
|---|---|---|
| -a | Chỉ cập nhật thời gian truy cập (atime). | touch -a file.txt |
| -m | Chỉ cập nhật thời gian sửa đổi nội dung (mtime). | touch -m file.txt |
| -c | Chế độ không tạo file mới. | touch -c missing.txt |
| -d | Sử dụng chuỗi ký tự mô tả thời gian để cập nhật timestamp. | touch -d "2 days ago" file.txt |
Những lợi ích khi sử dụng lệnh touch
Dưới đây là những lợi ích khi sử dụng lệnh touch:
- Tạo nhanh file rỗng: Lệnh touch giúp tạo file mới nhanh chóng mà không cần mở trình soạn thảo văn bản hay tốn tài nguyên hệ thống.
- Cập nhật mốc thời gian an toàn: Bạn có thể cập nhật an toàn mốc thời gian truy cập và sửa đổi của file về thời điểm hiện tại mà không làm thay đổi nội dung bên trong.
- Tạo hàng loạt file: Lệnh này cho phép tạo cùng lúc hàng chục hoặc hàng trăm file chỉ với một dòng lệnh đơn giản.
- Hỗ trợ tự động hóa quy trình: Bạn có thể dùng lệnh touch để kích hoạt lại các tác vụ tự động như biên dịch phần mềm hoặc sao lưu dữ liệu dựa vào sự thay đổi mốc thời gian của file.
- Tùy chỉnh thời gian linh hoạt: Lệnh touch cho phép đặt mốc thời gian cho file vào quá khứ hoặc tương lai để phục vụ mục đích kiểm thử.
- Đồng bộ hóa thời gian: Bạn có thể sao chép mốc thời gian từ file này áp dụng sang file khác một cách chính xác.

8 ví dụ thực tế sử dụng lệnh touch trong Linux
1. Khởi tạo nhanh file rỗng
Đây là tác vụ phổ biến nhất để tạo file giữ chỗ hoặc file cấu hình mẫu. Để tạo nhanh file, bạn chạy lệnh sau:
touch newfile.txt
2. Cập nhật thời gian sửa đổi file
Lệnh sau được thực thi để để kích hoạt các tác vụ sao lưu hoặc thiết lập lại phần mềm:
touch existing_file.txt
3. Khởi tạo hàng loạt file
Bạn có thể tạo cấu trúc file cho một dự án mới với một dòng lệnh duy nhất như sau:
touch file1.txt file2.txt file3.txt
4. Chỉ cập nhật thời gian truy cập
Sử dụng cờ -a khi bạn muốn đánh dấu file đã được đọc hoặc kiểm tra bởi một tiến trình mà không muốn thay đổi thuộc tính sửa đổi nội dung. Ví dụ:
- Sử dụng trong script backup để đánh dấu file đã được quét hoặc kiểm tra.
- Sử dụng trong hệ thống cache để cập nhật atime của file đã truy cập.
Cú pháp thực thi lệnh như sau:
touch -a log.txtMột số chương trình backup dựa vào atime để quyết định file nào mới được sử dụng và không backup lại. Như trong ảnh dưới đây, thời gian truy cập file được cập nhật:

Lưu ý
Bạn có thể kiểm tra sự thay đổi của atime bằng lệnh stat log.txt.
5. Chỉ cập nhật thời gian sửa đổi
Ngược lại với trường hợp trên, cờ -m chỉ thay đổi mtime. Kỹ thuật này phù hợp khi bạn muốn hệ thống hiểu rằng nội dung file đã thay đổi mà không cần chỉnh sửa thực sự.
touch -m log.txt
Nội dung file không thay đổi, chỉ đánh dấu là file đã được sửa đổi theo timestamp.
6. Thiết lập mốc thời gian cụ thể
Bạn có thể ấn định thời gian chính xác cho file, ví dụ, để đặt về 12:30 ngày 05/12/2025, bạn thực thi lệnh như sau:
touch -t 202512051230.00 report.txt
7. Đồng bộ timestamp giữa các file
Câu lệnh dưới đây giúp new.log nhận cùng thời gian truy cập (access time) và thời gian chỉnh sửa (modification time) với file old.log:
touch -r old.log new.logKết quả hiển thị sau khi chạy lệnh touch -r như sau:

Ứng dụng thực tế:
- Sync/Backup: Khi bạn copy hoặc restore file nhưng muốn bảo toàn thời gian gốc, tránh để phần mềm backup coi đây là dữ liệu mới hoàn toàn.
- Script hoặc Makefile: Khi bạn tạo file tạm nhưng cần đồng bộ thời gian sửa đổi của một file chuẩn, giúp các rule trong Makefile hoặc logic trong script hoạt động đúng theo thứ tự thời gian.
- Đánh dấu và kiểm thử: Khi thử nghiệm log rotation hoặc các script xử lý dựa trên timestamp, bạn có thể giả lập thời gian của file bằng
touch -rđể kiểm tra hành vi hệ thống mà không cần chờ thời gian thực.
8. Sử dụng thời gian tương đối
Thay vì tính toán ngày tháng cụ thể, bạn có thể dùng các chuỗi mô tả tự nhiên để điều chỉnh thời gian, phù hợp khi bạn viết script kiểm thử:
touch -d "2 days ago" report.txt
Kỹ thuật nâng cao với lệnh touch
Một trong những ứng dụng mạnh mẽ nhất của touch là kết hợp với lệnh find để xử lý hàng loạt. Ví dụ, bạn muốn tạo một file giữ chỗ tên là placeholder.txt trong tất cả các thư mục con có tên bắt đầu bằng “logs” để ngăn chặn việc các thư mục rỗng bị xóa nhầm bởi quy trình dọn dẹp hệ thống.
Cú pháp thực thi:
find . -type d -name "logs*" -exec touch {}/placeholder.txt \;Trong đó:
find . -type d -name "logs*": Tìm tất cả các thư mục (-type d) có tên bắt đầu bằng “logs”.-exec touch {}/placeholder.txt \;: Với mỗi thư mục tìm được, thực thi lệnhtouchđể tạo fileplaceholder.txtbên trong nó.

Câu hỏi thường gặp
Tại sao tôi nhận được thông báo lỗi “Permission denied” khi dùng touch?
Lỗi này xảy ra do hai nguyên nhân chính:
– Bạn đang cố gắng tạo một file mới trong một thư mục mà tài khoản hiện tại không có quyền ghi (Write permission).
– Bạn đang cố gắng cập nhật timestamp của một file mà bạn không phải là chủ sở hữu và không có quyền ghi lên file đó.
Giải pháp: Hãy kiểm tra lại quyền hạn hoặc sử dụng sudo touch filename nếu bạn có quyền quản trị.
Làm thế nào để kiểm tra xem touch đã thực sự thay đổi timestamp hay chưa?
Lệnh liệt kê file thông thường như ls -l chỉ hiển thị thời gian sửa đổi (mtime). Để xem chi tiết và chính xác cả 3 mốc thời gian (Access, Modify, Change) sau khi dùng touch, bạn hãy sử dụng lệnh stat filename.
Điều gì xảy ra nếu tôi dùng touch lên một file đang mở bởi chương trình khác?
Lệnh touch vẫn sẽ hoạt động và cập nhật timestamp của file đó mà không làm gián đoạn tiến trình đang chạy. Tuy nhiên, nếu chương trình kia thực hiện lưu dữ liệu (Save) sau đó, timestamp (mtime) sẽ bị ghi đè lại bởi thời điểm lưu của chương trình.
Lệnh touch Linux hỗ trợ tốt trong việc tạo file và quản lý timestamp phức tạp để phục vụ cho Backup, Build Automation, System Deployment,… Do đó, việc thành thạo lệnh touch sẽ giúp quy trình làm việc của bạn chuyên nghiệp và hiệu quả hơn. Chúc bạn thao tác thành công và cảm ơn bạn đã theo dõi bài viết.




