old-www/LDP/LG/issue14/dired.html

199 lines
6.5 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>Dired Program Issue 14</title>
</HEAD>
<BODY >
<H4>
&quot;Linux Gazette...<I>making Linux just a little more lovable!</I>&quot;
<IMG ALIGN=MIDDLE SRC="../gx/heart.gif">
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H2>The Cracraft and Lijewski DIRED Programs</H2>
<H4>By Grant B. Gustafson
<a href="mailto:gustafso@math.utah.edu">gustafso@math.utah.edu</A></H4>
</center>
<P> <HR> <P>
The directory navigator and program launcher called &quot;DIRED&quot;
in the original incarnations of EMACS has two stand-alone
Unix clones. Mike Lijewski's &quot;dired&quot; 2.2 is written in C++
(1996). The original &quot;dired&quot; was written in C by Stuart
Cracraft (1980), available as version 3.05 (1997).
<P>
Historically, shortly after emacs &quot;dired&quot; appeared in the
TECO implementation, a stand-alone version was written by
Stuart Cracraft (1980). The emacs version and the C version
have not kept up with one another.
<P>
Lijewski wrote &quot;dired&quot; in 1990, while at Cornell University
Theory Center, without any knowledge of Cracraft's &quot;dired&quot;.
The Theory Center ran on IBM VM/CMS, under which there is a
utility call &quot;file manager&quot;. This program manages the flat
VM/CMS file system and represents the main user interface
into files. The creation of &quot;dired&quot; eased the transition
from VM/CMS to Unix.
<P>
Lijewski's &quot;dired&quot; has the advantage of hindsight and C++
program development so it promises to be written in modern
syntax and very maintainable. Cracraft's &quot;dired&quot; was
rewritten in 1996 in ANSI C. It suffers with flaws in both
design and readability, but the features are there.
<P><HR> <P>
<center><H3>
Common features of Cracraft's and Lijewski's &quot;dired&quot;
</H3> </center>
<ul>
<li>Copy current file
<li>Hard link current file to another file.
<li>Symbolic link current file to another file.
<li>Unzip current file (gunzip).
<li>Zip current file (gzip).
<li>Rename current file.
<li>Display help.
<li>Cursor up one.
<li>Cursor down one.
<li>Back one page.
<li>Forward one page.
<li>Go to first file.
<li>Go to last file.
<li>Do shell command /w filename substitution.
<li>Search forward for file matching regular expression.
<li>Search reverse for file matching regular expression.
<li>Launch EDITOR on a file or DIRED on a directory.
<li>Recognize new window size and refresh screen.
<li>Delete current file
<li>Prompt for and edit a directory.
<li>Change the mode of the current file.
<li>Launch PAGER on this file.
<li>Sort the file list.
<li>Print file contents.
<li>Reload directory.
<li>Abort DIRED.
<li>Suspend DIRED.
<li>Exit immediately.
<li>Setup by command line, resource file or environment variable.
</ul>
Minor differences exist in the implementation of these
features. Cracraft's dired supports split screen.
Lijewski's dired supports scrolling by half-page. Deletes
in Cracraft's dired are done in batch whereas Lijewski's
dired does them immediately.
<P>
Curiously, the common features of the two direds also
account for the most often used dired commands.
<P>
The differences between Lijewski's &quot;dired&quot; and Cracraft's
&quot;dired&quot; in 1997 appear below. Many features commonly exist
in both versions, so only the superficial differences are
discussed. Strengths and weaknesses of each are also
listed.
<P><HR> <P>
<center><H3>
Unique features of Lijewski's &quot;dired&quot;
</H3> </center>
<ul>
<li>Compress current file.
<li>Uncompress current file.
<li>Change the group of the current file.
<li>View only files matching a regular expression.
</ul>
Strengths:
<ul>
<li>Excellent for persons with minimal Unix knowledge.
<li>Has a full complement of basic commands for file maintenance.
<li>Key configuration in resource file &quot;~/.diredrc&quot;.
</ul>
Weaknesses:
<ul>
<li>Does file maintenance one file at a time with prompts.
<li>Fixed full screen format.
<li>No ANSI colorization to match color-ls.
</ul>
<P><HR> <P>
<center><H3>
Unique features of Cracraft's Dired 3.05
</H3> </center>
<ul>
<li>Manual page display, DIRED 3.05 in detail.
<li>Key Tutor. Describe key. Execute key.
<li>Tag files for later processing.
<li>Dynamic format setup for the screen and shell commands.
<li>Toggle colorization of file names (4 color tables).
<li>Undo search and page move.
<li>Bookmarks.
<li>Abort or suspend DIRED and PUSHD to the displayed directory.
<li>Groff current file as a manual page.
<li>Type current text or binary file on terminal with pause.
<li>Write the formatted file list to a unique file in /tmp.
<li>Aliased shell commands, interactive or in resource ~/.diredset.
<li>Setup for shell commands attached to internal variables.
</ul>
Strengths:
<ul>
<li>Favors use by seasoned Unix people.
<li>Configurable screen format.
<li>Keys are fixed to give uniformity across different hosts.
</ul>
Weaknesses:
<ul>
<li>Key configuration is compiled into &quot;dired&quot; and can't be changed.
</ul>
<P><HR> <P>
<center><H3>
Misfeatures of both versions of &quot;dired&quot;
</H3> </center>
<P>
The program tends to be used for browsing and deleting
files; users find the other features too obtuse for daily
use. Too many commands. Its hard to remember what key does
which command.
<P><HR> <P>
<center><H3>
How to Get Dired
</H3> </center>
<P>
Find dired305.zip at <a href="http://sunsite.unc.edu/pub/Linux/">
http://sunsite.unc.edu/pub/Linux/</a>. Or email to
<a href="mailto: gustafson@math.utah.edu">gustafson@math.utah.edu</a>
for location of recent version.
<P>
Find Lijewski's c++ dired by sending email to
<a href="mailto: lijewski@mothra.lbl.gov">lijewski@mothra.lbl.gov</a>
for location of the recent version. If you want to see it on sunsite,
then let Mike hear about it!
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright &copy; 1997, Grant B. Gustafson <BR>
Published in Issue 14 of the Linux Gazette</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./clueless.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./outline.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
</BODY>
</HTML>