Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Softpanorama Search

Unix Touch command

News Books Minitutorial Recommended Links

Reference

Examples
Batch Cron cron.allow cron.deny

crontab

Etc

The touch command updates the access and modification times of each file specified by the File or Directory parameter (you can mix files and directories in the parameter list). Syntax

touch [-acm] [-r ref_file | -t time] file...

Important options are as follows:

  1. -a, --time=atime, --time=access, or --time=use Changes access time only
  2. -c, or --no-create Doesn't create files that don't exist
  3. -m, --time=mtime, or --time=modify Changes modification time only
  4. --date=time Uses time instead of current time
  5. -r file or --reference=file Uses the times from file instead of the current time

If you do not specify a value for the Time variable, the touch command uses the current time. If you specify a file that does not exist, the touch command creates the file unless you specify the -c flag. Creation of zero length files is  probably the most common usage of the command.  Another common use of touch is to create a large number of files quickly for testing scripts that read and process filenames. The touch command may also be used to assist in backup operations by manipulating access or modification times of files.

But few administrators know that the touch command also can be used for selective modification of the modification and access times using -a and -m options. If neither the -a nor -m options are specified, touch updates both the modification and access times.

The time used can be specified not only using specific time via  -t time option, but also by referencing to an exiting file (with  -r ref_file ).

A user with write access to a file, but who is not the owner of the file or a super-user, can change the modification and access times of that file only to the current time. Attempts to set a specific time with touch will result in an error. There is also a settime utility which is equivalent to touch -c [date_time] file.

The return code from the touch command is the number of files for which the times could not be successfully modified (including files that did not exist and were not created).

For example:

# touch foo bar blatz

If either foo, bar, or blatz does not exist, touch tries to create the file. touch cannot change files that the current user does not own or for which the user does not have write permissions.

Reference

Solaris

touch, settime- change file access and modification times

settime

OPERANDS

USAGE

ENVIRONMENT VARIABLES

EXIT STATUS

ATTRIBUTES

AIX

Updates the access and modification times of a file.

touch -a ] [  -c ] [  -m ] [  -f ] [  -r RefFile ] [ Time -t Time ] { File ... | Directory ... }

 

The touch command updates the access and modification times of each file specified by the File parameter of each directory specified by the Directory parameter. If you do not specify a value for the Time variable, the touch command uses the current time. If you specify a file that does not exist, the touch command creates the file unless you specify the -c flag.

The return code from the touch command is the number of files for which the times could not be successfully modified (including files that did not exist and were not created).

Note: Any dates beyond and including the year 2038 are invalid.
-a Changes the access time of the file specified by the File variable. Does not change the modification time unless -m is also specified.
-c Does not create the file if it does not already exist. No diagnostic messages are written concerning this condition.
-f Attempts to force the touch in spite of read and write permissions on a file.
-m Changes the modification time of File. Does not change the access time unless -a is also specified.
-r RefFile Uses the corresponding time of the file specified by the RefFile variable instead of the current time.
Time Specifies the date and time of the new timestamp in the format MMDDhhmm[YY], where:
MM
Specifies the month of the year (01 to 12).
DD
Specifies the day of the month (01 to 31).
hh
Specifies the hour of the day (00 to 23).
mm
Specifies the minute of the hour (00 to 59).
YY
Specifies the last two digits of the year. If the YY variable is not specified, the default value is the current year.
-t Time Uses the specified time instead of the current time. The Time variable is specified in the decimal form [[CC]YY]MMDDhhmm[.SS] where:
CC
Specifies the first two digits of the year.
YY
Specifies the last two digits of the year.
MM
Specifies the month of the year (01 to 12).
DD
Specifies the day of the month (01 to 31).
hh
Specifies the hour of the day (00 to 23).
mm
Specifies the minute of the hour (00 to 59).
SS
Specifies the second of the minute (00 to 59).
Notes:
  1. The touch command calls the utime () subroutine to change the modification and access times of the file touched. This may cause the touch command to fail when flags are used if you do not actually own the file, even though you may have write permission to the file.
  2. Do not specify the full path name /usr/bin/touch if you receive an error message when using the touch command.

Exit Status

This command returns the following exit values:
 

0 The command executed successfully. All requested changes were made.
>0 An error occurred.

Examples

  1. To update the access and modification times of a file, enter:
    touch program.c
    

    This sets the last access and modification times of the program.c file to the current date and time. If the program.c file does not exist, the touch command creates an empty file with that name.

  2. To avoid creating a new file, enter:
    touch  -c program.c
     
  3. To update only the modification time, enter:
    touch  -m *.o
    This updates the last modification times (not the access times) of the files that end with a .o extension in the current directory. The touch command is often used in this way to alter the results of the make command.
  4. To explicitly set the access and modification times, enter:
    touch  -c  -t 02171425 program.c
    This sets the access and modification dates to 14:25 (2:25 p.m.) February 17 of the current year.
  5. To use the time stamp of another file instead of the current time, enter:
    touch  -r file1 program.c
    This gives the program.c file the same time stamp as the file1 file.
  6. To touch a file using a specified time other than the current time, enter:
    touch  -t 198503030303.55 program.c
    This gives the program.c file a time stamp of 3:03:55 a.m. on March 3, 1985.

Files

/usr/bin/touch Contains the touch command.

Related Information

The date command, locale command.

The utime subroutine.

Directory Overview in AIX 5L Version 5.1 System User's Guide: Operating System and Devices describes the structure and characteristics of directories in the file system.

Files Overview in AIX 5L Version 5.1 System User's Guide: Operating System and Devices describes files, file types, and how to name files.

File and Directory Access Modes in AIX 5L Version 5.1 System User's Guide: Operating System and Devices introduces file ownership and permissions to access files and directories.

Understanding File Types in AIX 5L Version 5.1 General Programming Concepts: Writing and Debugging Programs introduces the commands that control files.



Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Disclaimer:

Last modified: August 08, 2009