How Servers handle File Names with Space characters
How Servers handle File Names with Space characters
What files specifically are we talking about?
Many files downloaded off of Servers, have some common characteristics. The files I am referring to in this article are those that are uploaded on the Servers specifically for download purposes, for instance; Operating Systems setup files, Software, archived movies and series, etc. The Servers that adopt the technique discussed in this article, are those that store Image files (.iso, .img, dmg, .vmdk, .ovf, .ova, etc), Archived files (.rar, .zip, 7zip, .tar, .gz, .targz, .gzip, .bzip, .xz, .deb, .rpm, .lzma, etc) and Executable files among other files.
Is it impossible to reference files with Space characters on their names?
The similarity of this files is in the way they are named before they are stored. All the Names of these files DO NOT include the Space character (also known as a Whitespace). This is necessary for Efficient File Referencing when doing whatever, NOT to mean that they cannot be / it is impossible to reference files whose file names include spaces.
Characters used in place of the Space character
Have you ever used terminal in a UNIX/Linux-based OS and tried to copy, move or even create a file with a file name that involves two or more names separated by space characters? The task is troublesome, but not impossible. To avoid this hustle you need to make the File Name one unit, which can be achieved by eliminating or replacing the Space characters.
Because eliminating Space characters will make the file name unreadable (especially for long file names), it is better to Replace all the Space characters occurrences with a Special symbols. However, not all Special symbols/characters are supported in files/directory names, and these vary, though not much, with the Operating System you are using. Some of the commonly supported and used Special symbols are;
1. Fullstop (.),
2. Underscore (_) &&
3. Hyphen/Dash (-).
Example of file stored in a server
Now let’s say we need to Download the Parrot Security image file for installing Parrot Security Operating System. Parrot Security provides several images depending on the attributes, that is, Home/Security edition, Desktop Environment (KDE/MATE) and of course the Architecture and Version. When the attributes, Edition: “Security”, Desktop Environment: “KDE”, Architecture: “AMD” and Version:”4.11.1″ (latest version when this article was written), then the file name could generally be named as “Parrot kde security 4.11.1 amd64.iso“.
We of course know that referencing this file is a hustle. Therefore, for efficiency, the file is renamed by replacing all the Space characters with supported Special characters. Now the name you will find assigned to the official download at ParrotSec official website is “Parrot-kde-security-4.11.1_amd64.iso” instead. When you select the mirror server to download the image file from, the file will by Default have the name, “Parrot-kde-security-4.11.1_amd64.iso”!
The ParrotSec image file is just used as an example, but you will find most servers all over using the same technique explained in this article.
Why eliminate Space characters in file names?
There are reasons why Spaces or Whitespaces cause trouble in Linux-based and probably some UNIX-like operating systems. Spaces in these operating systems are defined as Delimeters
Delimeters in this case are character(s) used to indicate the beginning/end of an argument/command/string. Check out this article (How to Work with File Names containing spaces in Linux), which explains how it is possible to reference/copy/move/create files whose names include spaces.
How Servers handle File Names with Space characters
Hacking | thetqweb