Search code examples
bashshellterminaltouch

How to touch files with different names and different date created


I am trying to create files with different date created:

$ touch -t 20{11..15}01120000 file_{1..5}.txt
$ ls -al 
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 201201120000
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 201301120000
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 201401120000
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 201501120000
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 file_1.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 file_2.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 file_3.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 file_4.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 file_5.txt

As you can see all file's dates created are 2011 Jan 12 0.

How can I create files with a different year?

# this is what I want
-rw-r--r--   1 shinokada  staff     0 Jan 12  2011 file_1.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2012 file_2.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2013 file_3.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2014 file_4.txt
-rw-r--r--   1 shinokada  staff     0 Jan 12  2015 file_5.txt

What is the best way?


Solution

  • touch command allows you to enter one one timestamp using -t option.

    A traditional for-loop would be better:

    for i in {1..5}; do touch -t 201${i}01120000 file_$i.txt; done