Ok what I want to do is get the size of a file and then assign that size to a variable. This is what I have so far: echo "total size of file" ls -l -s /tmp/systembackups/$Today/$Today/systemfiles.tar.gz | cut -d \ -f 7 the $Today variable is the date that the backup script was run, so every night when the script runs it tar's everything up and then burns to a dvd, what I also have is all the output from my script goes into a log file, so at the end of the log file I want to put the file sizes of the backup. With the example above I have tried to assign it to a variable and get nothing, when I try and run it as an echo statement it wont recognise the $Today variable. Can anyone help with this. Thanks
So your problem is that the $Today variable is empty, and not that you cannot assign the size of a file to a variable? Where does the $Today variable come from?
The Today variable contains the date, which is caluculated at the start of the script, so it does contain data. The way the I have found to get the file size into a variable is to echo the whole statment and then assign a variable to the echo statement. That will work as long as I hard code the folder locations (ie no variables) which is no good to me as the Today string will change every day. So if I do: FILESIZE$= 'echo 'ls -l -s /tmp/systembackups/26.06.06/26.06.06-backup/systemfiles.tar.gz | cut -d \ -f 7' the filesize string will contain the information I need but if I put in variables instead of the date it will fail, because the command line will not know what $Today is set to. Am I making sense.... its starting to pee me off a little. Any ideas. Thanks
I'm going to assume that directory structure is in place and the 26.06.06 is day.month.year. Here's a variation with stat: FILESIZE=$(stat -c %s /tmp/systembackups/$(date +%d.%m.%y)/$(date +%d.%m.%y)-backup/systemfiles.tar.gz) This should work iff I think correctly what you're trying to do. docs for stat and date: info stat info date
What about Code: FILESIZE=`ls -l -s /tmp/systembackups/${Today}/${Today}/systemfiles.tar.gz | cut -d \ -f 7` ?