Compare directory dates


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare directory dates
# 1  
Old 06-02-2015
Compare directory dates

hi, I need to know if a specific directory exists in a folder named after the date of yesterday (02/06/2015)

The problem is simple but not how to do it. Smilie
Code:
i= date -d "yesterday" '%Y-%m-%d'  <- the format of directory is 2015-06-02

if in /var/logroot/index exist directory whit yesterday name...
echo "yes"
else
echo "no"
fi

---------- Post updated at 10:10 AM ---------- Previous update was at 09:40 AM ----------

I have the answer!
Code:
i= ls /var/logroot/ | grep $(date -d "yesterday" '+%Y-%m-%d')

if -d $i; then
echo "yes"
else
echo "no"
fi


Last edited by rbatte1; 06-02-2015 at 01:42 PM.. Reason: Added CODE tags
# 2  
Old 06-02-2015
I guess you have
Code:
...
if [ -d "$i" ]; then
...

# 3  
Old 06-02-2015
if -d /var/logroot/$(date -d "yesterday" '+%Y-%m-%d')
.....
# 4  
Old 06-02-2015
Quote:
Originally Posted by thepentadactyl
if -d /var/logroot/$(date -d "yesterday" '+%Y-%m-%d')
.....
No. Neither:
Code:
if -d  /var/logroot/$(date -d "yesterday" '+%Y-%m-%d')

nor:
Code:
if -d $i; then

are valid commands on UNIX and Linux systems unless you have created your own -d utility. And, creating a utility with a name starting with a hyphen isn't a good idea. (There are too many contexts where a command name starting with a hyphen won't be recognized as a command name.)

You can use the code MadeInGermany suggested:
Code:
if [ -d "$i" ]; then

or the synonym:
Code:
if test -d "$i"; then

to determine whether the string contained in the expansion of $i is a directory.

And, the code:
Code:
i= ls /var/logroot/ | grep $(date -d "yesterday" '+%Y-%m-%d')

isn't correct either, unless you are trying to run the ls utility with the variable i set to an empty string in its environment. Even using:
Code:
i="$(ls /var/logroot/ | grep $(date -d "yesterday" '+%Y-%m-%d'))"
if [ -d "$i" ]; then

won't do what you want unless you can guarantee that there will never be more than one file in that directory that contains yesterday's date as part of its name.

A safer (and faster) way to do something like this would be:
Code:
for i in *$(date -d yesterday +%Y-%m-%d)*
do	if [ -d "$i" ]
	then	printf 'Yes, Processing directory "%s":\n' "$i"
		# Do whatever else you want to do with matching directories here...
	else	printf 'No, Skipping "%s"\n' "$i"
	fi
done

But, note also that dd/mm/YYYY (the date format you used as an example) and YYYY-mm-dd (the date format created by your invocation of the date utility) are not the same. And, if you expect a filename in one format to match the string produced by date, you had better be sure that they are using the same format.
# 5  
Old 06-03-2015
Don Cragun, tons of thanks for show me the MadeInGermany way. Amazing explanation.

Although with my method i have the solution i think your german way its more simple, and yep, never have 2 subdirectorys (with date name) in the same directory, its a automatic rutine to create dirs.

again, thanks!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare Dates.

Hi All, I am entering StartDate and EndDate as parameters to script. Want to have an check saying, "If StartDate is greater than EndDate then don't execute the script". Pseudo Code: if then Execute script else exit 0 fi Can you please help me on the same? Thanks and... (4 Replies)
Discussion started by: Nagaraja Akkiva
4 Replies

2. HP-UX

Compare dates

Hi, I want to convert two datetime fields to find out if the difference is one hour, in linux I've done this by converting both the datetime values to unix epoch time and subtracting them to find out if the difference is more than 3600s, however this does not work in hp-ux. I've these... (3 Replies)
Discussion started by: Random_Net
3 Replies

3. Shell Programming and Scripting

The Best Way to Compare Dates

Hi to all. When you have to compare a lot of dates in a SH code, there is a way to directly compare? For example, how can I check if two dates differ in less than a week? Thank's for reading. (2 Replies)
Discussion started by: daniel.gbaena
2 Replies

4. Shell Programming and Scripting

compare dates

I want to compare a list of dates in a file with today's date & list only dates that are less than only 60 days old . please help . the date in the file are in format 11-FEB-2009 02-FEB-2009 26-JAN-2009 24-JAN-2009 13-JAN-2009 16-DEC-2008 10-DEC-2008 01-DEC-2008 25-NOV-2008 19-NOV-2008... (3 Replies)
Discussion started by: skamal4u
3 Replies

5. Shell Programming and Scripting

compare between the two dates

Hi all, How to check whether the given the two dates is minimal. example: Date 1 : 23-03-2008 with timestamp Date 2: 20-03-2008 With tmestamp I want to compare the twodates and which it gives the minimum date i wnat to get the output like this below output: the Date2 is... (1 Reply)
Discussion started by: balaji23_d
1 Replies

6. Shell Programming and Scripting

How to compare the dates..

Hi all, I've written a script which gives the below information... End Date&Time: 2008-10-21 10.54.37 Now i want to calculate this time with the current time.. and if its more than 48 hours past with the current time it should echo "48 Hours back" Please help me.. thanks in... (4 Replies)
Discussion started by: suri.tyson
4 Replies

7. Shell Programming and Scripting

compare dates

Hi Gurus I am getting the timestamp of the last generated log file its like this "Oct 31 10:26" I want to compare this timestamp with the current date in shell script. I want to compare if the (timestamp-currentime) > 10 minutes how do i do this. Thanks Ragha (2 Replies)
Discussion started by: ragha81
2 Replies

8. Programming

How to compare dates in C/C++

Hi, Is there any system defined function to compare two dates in C/C++? Thanks (1 Reply)
Discussion started by: naan
1 Replies

9. Programming

How to compare two dates

Hi I am writing a unix program. In that, i should compare two dates. I would like to know how to compare two dates in unix-whether they are same or not. pls help (5 Replies)
Discussion started by: bankpro
5 Replies

10. Shell Programming and Scripting

compare two dates

I have a log file with date format like 10-Oct-02 13:20:29 ..... at the beginning of each line in the log file, and I need to grep data from this file to list the lines with date no longer than one days. I tried to use awk to do this but it looks very complicated to do it. Is there... (6 Replies)
Discussion started by: wchen
6 Replies
Login or Register to Ask a Question