====== 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