open.itworld.com
  Search  
Security Home Page Security Webcasts Security White Papers Security Newsletters Security News Open Topics Careers ITworld Voices ITwhirled The Security site of ITworld.com

Unix Tip: Filename completion

ITworld.com 11/01/2006

Sandra Henry-Stocker, ITworld.com

Send in your Unix questions today! | See additional Unix tips and tricks

Digg!

A number of readers have recently asked how they set up and use filename completion in a variety of Unix shells. Since file completion does not work the same in every shell, we will examine how you can use this great time saving feature in csh (tcsh), bash and ksh.

csh

The C Shell implements file completion in the most straightforward and easy-to-use manner. When the filec environment variable is set (using a "set filec" command), all you have to do is type the leftmost part of a filename and then press the Escape key. The shell will fill in the remainder of the file name or as much of the filename as can be filled in before a choice must be made between a number of files starting with the same substring. For example, if a user were to type "more pro" and then press Escape, the system might fill in "gram" and then wait for the user to type 1 or 2. If the files in the current directory include a file named program1.c, one called program2.c and another called program3.c, entering a 1, 2 or a 3 and then pressing Escape again will yield the full name of the file. The "set filec" command is generally put in one of the user's startup files (e.g., ~/.cshrc) so that the user doesn't need to remember to type it on the command line whenever he logs in or opens a new window.

If, for some unfathomable reason, you decide to turn this feature off, all you have to do is "unset" filec with the, unsurprising, "unset filec" command and pressing escape will no longer function as was just described.

bash

Bash also provides filename completion, but it uses a tab instead of an Escape character to invoke the file completion operation. However, bash doesn't require you to set an environment variable; it just provides file completion by default. Bash also implements an additional filename completion feature. If, after typing a portion of a filename and then pressing tab, you reach that point at which multiple files satisfy your request and you need to add more text to select one of the files, you can press tab twice more for a list of the files that match what you have typed thus far.

For example, if you were working with the program1.c, program2.c and program3.c files, you could type "more pro" and press tab. The shell would fill in "gram". If you then press tab twice more, you will see a list like this, allowing you to select the next letter (much more useful if your file names are quite so predictable as 1, 2 and 3!).

program1.c  program2.c  program3.c
ksh

For Korn shell users, filename completion depends on the value of the EDITOR variable. If EDITOR is set to emacs, you will type part of name and then press the Escape key twice to complete the filename. If EDITOR is set to vi, however, you will type part of name and then press esc followed by a backslash ("\") character.

Since the EDITOR variable also determines the editor that you will be using when you modify crontab files, you might be inclined to select the editor that you are most comfortable using rather than whether esc esc or esc \ seems like a better option.

Filename completion allows you to type "faster" and avoid a lot of errors. I especially appreciate this feature when I'm typing a long pathname.

When a fellow sysadmin told me that he automates tasks because he's lazy and he doesn't type well, I answered that the same was probably true of most sysadmins.

On this topic

 

Sandra Henry-Stocker has been administering Unix systems for more than 18 years. She describes herself as "USL" (Unix as a second language) but remembers enough English to write books and buy groceries. She currently works for TeleCommunication Systems, a wireless communications company, in Annapolis, Maryland, where no one else necessarily shares any of her opinions. She lives with her second family on a small farm on Maryland's Eastern Shore. Send comments and suggestions to bugfarm@gmail.com.




Sponsored Links

Sign up for a Microsoft Dynamics® CRM WEBCAST
Hear globally recognized leaders in customer strategy discuss the importance and evolution of CRM.
Sun Microsystems' - FREE 60 DAY TRIAL OFFER!
Test Sun's Newest Servers BEFORE YOU BUY. Plug Them In With Access To Full Technical Support.
100% Web Based Help Desk Software
Easy to use, customizable to meet your needs, powerful and scalable. Free online demo. Try it today!
Sign up for a Microsoft Dynamics® CRM WEBCAST
Hear globally recognized leaders in customer strategy discuss the importance and evolution of CRM.
Used and Refurbished HP ProCurve Switches
Lifetime Warranties, Professional Testing & Shipping on all HP Equipment Purchases!
» Buy a link now

Advertisements
Sponsored links
Locate Hidden Software on business PCs with this free tool
Bring harmony to your mix of UNIX-Linux-Windows computing environments
Top 5 Reasons to Combine App Performance and Security
KODAK i1400 Series Scanners stand up to the challenge
 Home   Open source  Operating systems  Unix
www.itworld.com    open.itworld.com     security.itworld.com     smallbusiness.itworld.com
storage.itworld.com     utilitycomputing.itworld.com     wireless.itworld.com

 
Contact Us   About Us   Privacy Policy    Terms of Service   Reprints  

CIO   Computerworld   CSO   GamePro   Games.net   IDG Connect   IDG World Expo   Infoworld   ITworld   JavaWorld   LinuxWorld  MacUser   Macworld   Network World   PC World   Playlist  

Copyright © Computerworld, Inc. All rights reserved

Reproduction in whole or in part in any form or medium without express written permission of Computerworld Inc. is prohibited. Computerworld and Computerworld.com and the respective logos are trademarks of International Data Group Inc.