summaryrefslogtreecommitdiffstats
path: root/man1/touch.1
blob: 0b0304654a14c9f300e613dfa6a3fc5b436e01d7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
.\" Copyright Andries Brouwer, Ragnar Hojland Espinosa and A. Wik, 1998.
.\"
.\" This file may be copied under the conditions described
.\" in the LDP GENERAL PUBLIC LICENSE, Version 1, September 1998
.\" that should have been distributed together with this file.
.\" 
.TH TOUCH 1 1998-11 "GNU fileutils 4.0"
.SH NAME
touch \- change file timestamps
.SH SYNOPSIS
.B touch
.BI "[\-acm][\-r " ref_file "|\-t " time "] [\-\-] " file...
.sp
Obsolescent version:
.br
.B touch
.BI "[\-acm][" ugly_time "] " file...
.sp
GNU version:
.br
.B touch
.BI "[\-acfm] [\-r " file "] [\-t " decimtime ]
.BI "[\-d " time "] [\-\-time={atime,access,use,mtime,modify}]"
.BI "[\-\-date=" time "] [\-\-reference=" file ]
.BI "[\-\-no\-create] [\-\-help] [\-\-version] [\-\-] " file...
.SH DESCRIPTION
.B touch
changes the access and/or modification timestamps of each
specified
.IR file .
These timestamps are changed to the current time, unless
the \-r option is specified, in which case they are changed
to the corresponding timestamps of the file
.IR ref_file ,
or the \-t option is specified, in which case they are changed
to the specified
.IR time .
Both times are changed when neither or both of the \-a and \-m
options are given. Only the access or only the modification time
is changed when one of the options \-a and \-m is given.
If the file did not exist yet, it is created (as an empty file
with mode 0666, modified by the umask), unless the \-c option is given.
.SH "POSIX OPTIONS"
.TP
.B \-a
Change the access time of
.IR file .
.TP
.B \-c
Do not create
.IR file .
.TP
.B \-m
Change the modification time of
.IR file .
.TP
.BI "\-r " ref_file
Use the corresponding timestamp of
.I ref_file
as the new value for the changed timestamp(s).
.TP
.BI "\-t " time
Use the specified time as the new value for the changed timestamp(s).
The argument is a decimal number of the form
.br
.nf
    [[CC]YY]MMDDhhmm[.SS]
.br
.fi
with the obvious meaning. If CC is not specified, the year CCYY
is taken to be in the range 1969-2068.
If SS is not specified, it is taken to be 0. It may be specified
in the range 0-61 so that it is possible to refer to leap seconds.
The resulting time is taken as a time for the time zone specified by
the environment variable TZ. It is an error if the resulting time
precedes 1 January 1970.
.TP
.B "\-\-"
Terminate option list.
.SH "POSIX DETAILS"
The second form of invocation has the disadvantage that there is
some ambiguity as to whether
.I ugly_time
is a time or a file argument. It is taken to be a time when
no \-r or \-t option is present, there are at least two arguments,
and the first argument is an eight- or ten-digit decimal integer.
The format of
.I ugly_time
is MMDDhhmm[yy], where an yy in the range 69-99 denotes a year
in the range 1969-1999, and an unspecified yy denotes the current year.
This form is obsolete.
.SH "GNU DETAILS"
If the first
.I file
would be a valid argument to the
.B "\-t"
option and no timestamp is given with any of the
.BR "\-d" ,
.BR "\-r"
or
.B "\-t"
options and the `\-\-' argument is not given, that argument is
interpreted as the time for the other files instead of as a file name.
.PP
If changing both the access and modification times to the current
time,
.B touch
can change the timestamps for files that the user running it does
not own but has write permission for.  Otherwise, the user must
own the files.
.SH "GNU OPTIONS"
.TP
.B "\-a, \-\-time=atime, \-\-time=access, \-\-time=use"
Change the access time only.
.TP
.B "\-c, \-\-no\-create"
Do not create files that do not exist.
.TP
.BI "\-d, \-\-date=" time
Use
.I time
instead of the current time.  It can contain month names,
time zones, `am' and `pm', etc.
.TP
.B "\-f"
Ignored; for compatibility with BSD versions of 
.BR touch (1).
.TP
.B "\-m, \-\-time=mtime, \-\-time=modify"
Change the modification time only.
.TP
.BI "\-r " file ", \-\-reference=" file
Use the times of the reference
.I file
instead of the current time.
.TP
.BI "\-t " decimtime
Here
.I decimtime
has the format MMDDhhmm[[CC]YY][.ss]
Use the argument (months, days, hours, minutes, optional century
and years, optional seconds) instead of the current time.
Note that this format violates the POSIX specification.
.SH "GNU STANDARD OPTIONS"
.TP
.B "\-\-help"
Print a usage message on standard output and exit successfully.
.TP
.B "\-\-version"
Print version information on standard output, then exit successfully.
.TP
.B "\-\-"
Terminate option list.
.SH ENVIRONMENT
The variable TZ is used to interpret explicitly given times.
The variables LANG, LC_ALL, LC_CTYPE and LC_MESSAGES have the
usual meaning.
.SH "CONFORMING TO"
POSIX 1003.2 describes a syntax for the argument of the \-t option
that differs from that used by the GNU implementation.
.SH "EXAMPLE OF USE"
The command `\fItouch foo\fP' will create the file \fIfoo\fP
if it didn't exist, and change the time of last modification to now.
It is often used to guide the actions of
.BR make .
.SH NOTES
This page describes
.B touch
as found in the fileutils-4.0 package;
other versions may differ slightly.