Re: How to change file's timestamp?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Tue, 22 Aug 2006 10:56:11 -0500 (CDT), Hongwei Li wrote:
>> The problem is when I run it at command line, it works, but not in
>> the script:
>>
>> # touch --date="Tue Aug 22 08:30:00 CDT 2006" t1
>> works well. However, the script mystmp:
>>
>> #!/bin/sh
>> newstmp=$1
>> touch --date=$newstmp t1
>>
>> and run mystmp as:
>> # ./mystmp "Tue Aug 22 08:30:00 CDT 2006"
>>
>> didn't do what I want, but created:
>>
>> # ls -l
>> total 32
>> -rw-r--r-- 1 root root   0 Aug 22 00:00 08:30:00
>> -rw-r--r-- 1 root root   0 Aug 22 00:00 2006
>> -rw-r--r-- 1 root root   0 Aug 22 00:00 22
>> -rw-r--r-- 1 root root   0 Aug 22 00:00 Aug
>> -rw-r--r-- 1 root root   0 Aug 22 00:00 CDT
>> -rwxr-xr-x 1 root root 420 Aug 22 10:47 mystmp
>> -rw-r--r-- 1 root root   0 Aug 22 00:00 t1
>>
>> What's wrong? Thanks!
>
> The problem is that the parameter has spaces within it, so when you
> use that as
> a variable within your script, you need to enclose it with quotes. Your script
> currently expands that command to something such as:
>
> 	touch --date=Tue Aug 22 08:30:00 CDT 2006 t1
>
> which - since the "Aug," "22," "08:30:00," etc files don't exist -
> creates them
> and sets their timestamps to the current time. You need to use --date="$1" so
> that the command is interpreted as you had intended:
>
> 	touch --date="$1" foo.file
>
> That would expand to something such as:
>
> 	touch --date="Tue Aug 22 08:30:00 CDT 2006" foo.file
>
> which is what I believe you are intending to do.
>
> Hope that helps.
> --
> Peter Gordon (codergeek42)
> This message was sent through a webmail interface,
>      thus has no digital signature.
>

It works.  Thank you very much!
-H.


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux