I want to see the files which are before 15 days modified into a directory.
if not found before 15 days, then look for 10 days before.
My Attempt
#!/bin/bash
FILE_DIR1="/var/log/"
diskClean (){
FileExist=`sudo find $FILE_DIR1 -mtime +15 -type f -exec ls -la {} ;|awk '{print $9}'`
if [ -f $FileExist ]
then
echo "these are the files before 15 days."
ls $FileExist
else
FILE=`sudo find $FILE_DIR1 -mtime +10 -type f -exec ls -la {} ;|awk '{print $9}'`
echo "these are the files before 10 days."
ls $FILE
fi
}
diskClean
Advertisement
Answer
FileList is a string which holds the names of all files (separated by spaces), for instance something like /var/log/foo /var/log/bar. You then test in your condition whether you have one file where the name equals the value of this string. While you have a file with name “/var/log/foo”, you don’t have one with the name “/var/log/foo /var/log/bar” and the condition will fail.
You could use
if [[ -n "$FileList" ]]
instead.
BTW, what is the point to first list the files with all attributes (ls -l), and then use awk to extract just the filename? If you are interested in the filenames only, you could either use ls -1, or even better omit the -exec clause completely; find will output the filenames anyway.