====== Ubuntu - Bash - Scripts - kind ====== Displays the names of all files in the specified directory with the specified type. If you do not specify any type it defaults to text files. ---- ===== Usage ===== kind [-a] [-d] [-t] [-x] [file...] ---- ===== Code ===== #!/bin/bash # # @(#) kind v1.0 Prints files of the same kind # if [ $# -gt 0 ] then if [ `echo $1 | cut -c1` = "-" ] then case #1 in -a) KIND='archive' shift;; -d) KIND='data' shift;; -t) KIND='text' shift;; -x) KIND='executable' shift;; *) echo "kind: arg error" >&2 echo "usage: kind [-a] [-d] [-t] [-x] [file...]" >&2 echo " -a archive" >&2 echo " -d data" >&2 echo " -t text, default" >&2 echo " -x executable" >&2 echo " if no args, reads stdin" >&2 exit 1;; esac fi fi : ${KIND:='text'} case $# in 0) while read FILE do file $FILE | fgrep $KIND | cut -d: -f1 done;; *) file $@ | fgrep $KIND | cut -d: -f1;; esac FILE contains the file names as they are read from stdin (Standard input). KIND contains the text string that defines the type of file. ---- ===== Examples ===== Display all text files in the directory /etc. more `kind /etc/*` That is actually hatched a list of all data files. ---- And if I have done the following sequence of commands **cd /etc** and **kind -d ***. kind -d /etc/* Possible result: /etc/mnttab /etc/utmp /etc/wtmp ---- od `kind -d /etc/*` ---- ll `sh -x kind -a /lib/*` | m ---- find / -print | kind -x | while read FILE > do > ll $FILE > done > /tmp/filelist