#!/bin/bash # DIR--Pretends we're the DIR command in DOS and displays the contents # of the specified file, accepting some of the standard DIR flags. function usage { cat << EOF >&2 Usage: $0 [DOS flags] directory or directories Where: /D sort by columns /H show help for this shell script /N show long listing format with filenames on right /OD sort by oldest to newest /O-D sort by newest to oldest /P pause after each screenful of information /Q show owner of the file /S recursive listing /W use wide listing format EOF exit 1 } ##################### ### MAIN BLOCK postcmd="" flags="" while [ $# -gt 0 ] do case $1 in /D ) flags="$flags -x" ;; /H ) usage ;; /[NQW] ) flags="$flags -l" ;; /OD ) flags="$flags -rt" ;; /O-D ) flags="$flags -t" ;; /P ) postcmd="more" ;; /S ) flags="$flags -s" ;; * ) # unknown flag: probably a dir specifier # break; so let's get out of the while loop esac shift # processed flag, let's see if there's another done # done processing flags, now the command itself: if [ ! -z "$postcmd" ] ; then ls $flags "$@" | $postcmd else ls $flags "$@" fi exit 0