You probably don’t need to backup your whole hard drive every day. Just back up what you changed recently.
Tag Archives: find
Finding the Offending Directories | FreedomPenguin
Sometimes you really don’t want to back up certain things on a computer. I wrote this article to show how I diagnose when too much is being backed up.
Finding Recent Files | FreedomPenguin
Here starts my new series of articles on making backups on the command-line. The heart of the process is the “find” program.
Backups: Using `find` Across a Panalopy of Directories
I love using the find command. In DOS, find is like grep. In Linux, find is the most powerful recursive DOS dir /s or Linux ls -r command you could ever put your saddle on.
One of the things you can do with find is to avoid directories, using the -prune switch. Like so:
find /usr/local -type d -a \( -name jre1.6.0_38 -prune -o -type d -print \)
Yeah, put your bike helmet on if you keep reading. That spat out a ton of gook. But was I lying? Well, grep out everything but what we should have pruned:
find /usr/local -type d -a \( -name jre1.6.0_38 -prune -o -type d -print \) | grep jre1.6
What if you have a series of subdirectories you want to include, but you cannot write enough -prune switches for them? This is a problem I frequently have. For instance, how do you exclude all your Firefox Cache directories, especially if you have multiple profiles? Great question.
I’d first use find to find all the directories I
do want to backup:
find /home/jed -maxdepth 4 -type d > /tmp/dirlist
Then you grep out things you really don’t want:
egrep -i "/cache|/Trash" /tmp/dirlist > /tmp/avoid
Then parse it into things you do want to find to avoid:
cat /tmp/avoid | while read F ; do echo " -path $F -o " ; done > /tmp/avoid2 ; echo "-path ./asdf" >> /tmp/avoid2
Now we can refresh our list of directories to descend:
find . -xdev -depth -type d \( `cat /tmp/avoid2` \) -prune -o -print
If we want to turn that right into files, modify the last print statement to find files:
find . -xdev -depth -type d \( `cat /tmp/avoid2` \) -prune -o -type f -print
Now if you want to find the files more recently created than your last backup in /home/backup/monday.tgz, try this:
find . -xdev -depth -type d \( `cat /tmp/avoid2` \) -prune -o -type f -newer /home/backup/monday.tgz -print
Is that enough to make you cry? Chin up, think of all the disk space you’re saving, and how much faster a specific backup can occur. This means you can run backups every 15 minutes.
Modern Picture Management?
I like to run a thumbnailer across most of my photos so I have little copies to send around, and I mod them so that they look distinctly different from the full resolution source files. I like to use gwenview to flip and rotate them. Gwenview can export to FB and email so that makes things easier.
I copied a bunch of these thumbs to a project folder. However, I still need to use scripting to sets of pictures from different directories, because they match by name. Buckle up:
ls \ | grep small-imgp \ | perl -pe 's/small-(imgp[0-9]+\.jpg)$/$1/' \ | while read F do find /home/jreynolds/9/2012/ -iname "$F" -exec cp {} ~/For-Mary \; done
Wow, now I can really get to work.