2 min read

How to create a file with today's date and time under Linux cli

How to create a file with today's date and time under Linux cli
Photo by Wesley Tingey / Unsplash

This is a very useful thing to know. When I write scripts that will do any type of backup I save file with the date and time of the backup.
So how can we do this, well have a look at this line:

touch file_name$(date +%F)

The output of this command is a file with today's date: 'file_name2023-02-08'
But we want time added to the file:

touch "file_name$(date "+%F %T")"

This gives us a file name not only with the current date but with the current time as-well.

The different types of parameters that you can add to the ‘date' option:

	   %a     locale's abbreviated weekday name (e.g., Sun)

	   %A     locale's full weekday name (e.g., Sunday)

	   %b     locale's abbreviated month name (e.g., Jan)

	   %B     locale's full month name (e.g., January)

	   %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)

	   %C     century; like %Y, except omit last two digits (e.g., 20)

	   %d     day of month (e.g., 01)

	   %D     date; same as %m/%d/%y

	   %e     day of month, space padded; same as %_d

	   %F     full date; same as %Y-%m-%d

	   %g     last two digits of year of ISO week number (see %G)

	   %G     year of ISO week number (see %V); normally useful only with %V

	   %h     same as %b

	   %H     hour (00..23)
	   %I     hour (01..12)

	   %j     day of year (001..366)

	   %k     hour, space padded ( 0..23); same as %_H

	   %l     hour, space padded ( 1..12); same as %_I

	   %m     month (01..12)

	   %M     minute (00..59)

	   %n     a newline

	   %N     nanoseconds (000000000..999999999)

	   %p     locale's equivalent of either AM or PM; blank if not known

	   %P     like %p, but lower case

	   %q     quarter of year (1..4)

	   %r     locale's 12-hour clock time (e.g., 11:11:04 PM)

	   %R     24-hour hour and minute; same as %H:%M

	   %s     seconds since 1970-01-01 00:00:00 UTC
	   %S     second (00..60)

	   %t     a tab

	   %T     time; same as %H:%M:%S

	   %u     day of week (1..7); 1 is Monday

	   %U     week number of year, with Sunday as first day of week (00..53)

	   %V     ISO week number, with Monday as first day of week (01..53)

	   %w     day of week (0..6); 0 is Sunday

	   %W     week number of year, with Monday as first day of week (00..53)

	   %x     locale's date representation (e.g., 12/31/99)

	   %X     locale's time representation (e.g., 23:13:48)

	   %y     last two digits of year (00..99)

	   %Y     year

	   %z     +hhmm numeric time zone (e.g., -0400)

	   %:z    +hh:mm numeric time zone (e.g., -04:00)

	   %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

	   %:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

	   %Z     alphabetic time zone abbreviation (e.g., EDT)

If you want to know more about the powers of 'date', head over to the man pages

man date

for more information.

Enjoy!