I want to increment the date under UNIX or Linux operating system while writing shell scripts. For example Apr/27/2011 should be incremented as Apr/28/2011 and so on. How do I increment a date in UNIX or Linux shell?
You can display time and date described by format (also known as relative date format) under GNU/date utility which is part of Linux and UNIX like operating systems. The default format is to display current date and time. To display tomorrows date, enter:
$ date
$ date --date="-1 days ago"
Sample outputs:
Wed Apr 27 02:29:59 IST 2011 Thu Apr 28 02:29:34 IST 2011
You can use bash for loop as follows:
#!/bin/bash for i in {1..10} do date --date="-$i days ago" done
Sample outputs:
Thu Apr 28 02:33:02 IST 2011 Fri Apr 29 02:33:02 IST 2011 Sat Apr 30 02:33:02 IST 2011 Sun May 1 02:33:02 IST 2011 Mon May 2 02:33:02 IST 2011 Tue May 3 02:33:02 IST 2011 Wed May 4 02:33:02 IST 2011 Thu May 5 02:33:02 IST 2011 Fri May 6 02:33:02 IST 2011 Sat May 7 02:33:02 IST 2011
Change Date Format To DD/MM/YY
Use the following syntax:
$ date +"%d/%m/%y" --date="-5 days ago"
Here is update code:
#!/bin/bash # Increment the date in dd/mm/yy format for i in {1..10} do date +"%d/%m/%y" --date="-$i days ago" done
Sample outputs:
28/04/11 29/04/11 30/04/11 01/05/11 02/05/11 03/05/11 04/05/11 05/05/11 06/05/11 07/05/11
You can use the same technique in backup scripts to adjust date and time.
See also:
- Getting Yesterdays or Tomorrows day with Linux date command.
- How to use yest - a command line date/time manipulation and formatting program to add or subtract days, hours and/or minutes from a specified date.
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop











{ 2 comments… read them below or add one }
date –date=”1 days ago” is a solution i was looking for!
nice one, thanks a lot!!
Awesome tip!