#!/bin/sh ## ## SCRIPT: F2a_anyfile4Dir_LIST_FILESdirs-all_allLEVS_DIRSfirst_find-d-f.sh ## ## PURPOSE: List ALL DIRECTORIES in a directory AND in its ## subdirectories at ALL levels below. ## Then list ALL FILES in a directory AND in its ## subdirectories at ALL levels below. ## ## METHOD: Uses 'find -d' to list the directory names, all levels. ## ## Uses 'find -f' to list the 'regular' files at all levels. ## ## Puts the output of these 'find' commands in a text file. ## ## Shows the text file using a text-file viewer of the user's ## choice. ## ## HOW TO USE: In Nautilus, select any file in the 'navigated to' directory. ## Then right-click and choose this Nautilus script to run. ## ## Created: 2011jul14 ## Changed: 2012feb29 Changed the script name in the comment above. ## FOR TESTING: (show statements as they execute) # set -x ################################################# ## Prepare the output file. ## ## If the user has write-permission on the ## current directory, put the file in the pwd. ## Otherwise, put the file in /tmp. ################################################# CURDIR="`pwd`" OUTFILE="${USER}_temp_dirAllFilesRecursiveLIST_find-d-f.txt" if test ! -w "$CURDIR" then OUTFILE="/tmp/$OUTFILE" fi if test -f "$OUTFILE" then rm -f "$OUTFILE" fi ##################################### ## Generate a heading for the listing. ##################################### DATETIME=`date '+%Y %b %d %a %T%p'` echo "\ ..................... $DATETIME ............................ List of DIRECTORIES under directory $CURDIR --- ALL levels (recursive) --- followed by a List of 'regular' FILES under directory $CURDIR --- ALL levels (recursive). ........................................................................... " > "$OUTFILE" ########################################### ## Add the 'find -d' output to the listing. ########################################### echo " ########### DIRECTORIES : ########### " >> "$OUTFILE" find . -type d -name '*' -print | sort >> "$OUTFILE" ########################################### ## Add the 'find -f' output to the listing. ########################################### echo " ############### 'Regular' FILES : ############### " >> "$OUTFILE" find . -type f -name '*' -print | sort >> "$OUTFILE" ##################################### ## Add a trailer to the listing. ##################################### SCRIPT_BASENAME=`basename $0` SCRIPT_DIRNAME=`dirname $0` echo "\ ........................................................................... This list was generated by script $SCRIPT_BASENAME in directory $SCRIPT_DIRNAME Used commands find . -type d -name '*' -print | sort and find . -type f -name '*' -print | sort ..................... $DATETIME ............................ " >> "$OUTFILE" ###################### ## Show the list. ###################### ## . $HOME/.gnome2/nautilus-scripts/.set_VIEWERvars.shi . $HOME/.freedomenv/feNautilusScripts/set_DIR_NautilusScripts.shi . $DIR_NautilusScripts/.set_VIEWERvars.shi $TXTVIEWER "$OUTFILE" &