Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Next: , Previous: MS-DOS Display, Up: MS-DOS

G.4 File Names on MS-DOS

MS-DOS normally uses a backslash, ‘\’, to separate name units within a file name, instead of the slash used on other systems. Emacs on MS-DOS permits use of either slash or backslash, and also knows about drive letters in file names.

On MS-DOS, file names are case-insensitive and limited to eight characters, plus optionally a period and three more characters. Emacs knows enough about these limitations to handle file names that were meant for other operating systems. For instance, leading dots ‘.’ in file names are invalid in MS-DOS, so Emacs transparently converts them to underscores ‘_’; thus your default init file (see Init File) is called _emacs on MS-DOS. Excess characters before or after the period are generally ignored by MS-DOS itself; thus, if you visit the file LongFileName.EvenLongerExtension, you will silently get longfile.eve, but Emacs will still display the long file name on the mode line. Other than that, it's up to you to specify file names which are valid under MS-DOS; the transparent conversion as described above only works on file names built into Emacs.

The above restrictions on the file names on MS-DOS make it almost impossible to construct the name of a backup file (see Backup Names) without losing some of the original file name characters. For example, the name of a backup file for docs.txt is docs.tx~ even if single backup is used.

If you run Emacs as a DOS application under Windows 9X, Windows ME, or Windows 2000, you can turn on support for long file names. If you do that, Emacs doesn't truncate file names or convert them to lower case; instead, it uses the file names that you specify, verbatim. To enable long file name support, set the environment variable LFN to ‘y’ before starting Emacs. Unfortunately, Windows NT doesn't allow DOS programs to access long file names, so Emacs built for MS-DOS will only see their short 8+3 aliases.

MS-DOS has no notion of home directory, so Emacs on MS-DOS pretends that the directory where it is installed is the value of the HOME environment variable. That is, if your Emacs binary, emacs.exe, is in the directory c:/utils/emacs/bin, then Emacs acts as if HOME were set to ‘c:/utils/emacs’. In particular, that is where Emacs looks for the init file _emacs. With this in mind, you can use ‘~’ in file names as an alias for the home directory, as you would on GNU or Unix. You can also set HOME variable in the environment before starting Emacs; its value will then override the above default behavior.

Emacs on MS-DOS handles the directory name /dev specially, because of a feature in the emulator libraries of DJGPP that pretends I/O devices have names in that directory. We recommend that you avoid using an actual directory named /dev on any disk.

  Published under the terms of the GNU General Public License Design by Interspire