#!/bin/bash
#                 /usr/local/bin/pfind
# http://crystalfaeries.net/posix/bin/pfind
# celeste:crystalfaery 2015-09-09 12:41:26+00:00

# "P Find" is a shortcut to CLI find requests to stay "local" and not wander off into:
# system special directories:
#	/lost+found			# we usually don't have access unless superuser
#	/root				# we usually don't have access unless superuser
#	/dev				# we don't really want to probe device files
#	/proc				# we don't really want to probe the kernel
#	/sys				# we don't really want to probe the kernel
#	/run				# we don't really want to probe process locks
#	/rescue				# we don't need to see the backup copy of /boot
# backups:
#	/home/rsnapshot			# rsnapshot backups
#	/var/cache/rsnapshot		# rsnapshot backups
# or NAS: (sshfs or cifs mounts of Network Attached Storage):
#	/home/dar			# LAN-shared public
#	/home/dar-			# LAN-shared public backup
#	"${HOME}"/downloads			# LAN-shared public
#	"${HOME}"/downloads-		# LAN-shared public backup
#	/home/public			# LAN-shared public
#	/home/public-			# LAN-shared public backup

#	NOTE:		We are only allowing one starting directory	####### Incompatible #######

#	NOTE:		-prune won't work if you append a trailing "/" to directory name	####### Wrapper Filter Needed #######
searchdir="$1"; shift	# separate out the first argument as the directory to search	####### ASSumption #######
find "$searchdir"			    \( \( \
-path /dev				-prune -o \
-path /lost+found			-prune -o \
-path /proc				-prune -o \
-path /rescue				-prune -o \
-path /root				-prune -o \
-path /run				-prune -o \
-path /sys				-prune -o \
-path /var/cache			-prune -o \
-path /var/run				-prune -o \
-path /home/dar-			-prune -o \
-path /home/dar				-prune -o \
-path "${HOME}"/downloads-			-prune -o \
-path "${HOME}"/downloads			-prune -o \
-path /home/rsnapshot			-prune \) \
-fprint /tmp/find.prune.txt \) -o \
\( -iname '*[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].*' \)

exit	$?


/usr/local/bin/pfind:-fprint /tmp/find.prune.txt \) -o \
=======	-------	=======
/dev
/etc-/chatscripts
/etc/chatscripts
/etc/cups/ssl
/etc-/ppp/peers
/etc/ppp/peers
/etc-/ssl/private
/etc/ssl/private
/home/dar
/home/crystalfaery/documents
/home/public
/lost+found
/proc
/rescue
/root
/run
/srv
/sys
/var/cache
/var/lib/dovecot
/var/lib/fetchmail
/var/lib/polkit-1
/var/lib/sudo
/var/log/apache2
/var/run
/var/spool/cron/atjobs
/var/spool/cron/atspool
/var/spool/cron/crontabs
/var/spool/cups
/var/spool/postfix/active
/var/spool/postfix/bounce
/var/spool/postfix/corrupt
/var/spool/postfix/defer
/var/spool/postfix/deferred
/var/spool/postfix/flush
/var/spool/postfix/hold
/var/spool/postfix/incoming
/var/spool/postfix/maildrop
/var/spool/postfix/private
/var/spool/postfix/public
/var/spool/postfix/saved
/var/spool/postfix/trace
