\\ Corning Community College \\ UNIX/Linux Fundamentals \\ \\ Case Study 0x4: Unconventional Naming \\ \\ ~~TOC~~ =====Objective===== To see how to deal with situations that use special meaning or shell-expanded characters. =====Background===== With the increasing popularity of "Personal Computers" and "File Sharing Services", there has been a surplus of inappropriately named files. Characters like the space, while a valid character to use, can make for some interesting command-line issues as you will soon encounter. As this behavior isn't likely to go away, it is important to know how to deal with such files on a UNIX system. Copy the **badname.tgz** file from the **naming/** subdirectory of the UNIX public directory into your home directory and extract all the files. They will go into a **badname/** directory relative to your current directory. There are three subdirectories created under the badname directory: **example/**, **exercise/**, and **challenge/** Change into the various directories and list the files. Take a look at the names, and try to figure out what they are. Try and see if you can view their contents by conventional means (by manual typing.. no shortcuts :) ) For example, here are some of the files you may encounter: ^Try to view: | look at me.text | ^Try to rename: | change my name.file | ^Try to remove: | ??? can you delete me ???.abc | ^Try to compress: | compress this file.data | More likely than not, you will experience some problems dealing with these files under normal means. A real aggravation. What's the problem? The UNIX shell, like many other command-line oriented environments, uses the space as an argument separator. So when you try to **cat**, **mv**, **gzip**, or **rm** these troublesome files, the shell will try to interpret the single long file name as separate individual names. **look at me.text** is the actual name of the file, but when given as an argument to cat, it will try to separately open the files: * look * at * me.text There are ways to deal with such files. (Thank goodness!) In the UNIX shell, there are several special characters that can be used on the command line to accomodate these awkward conditions. These characters harbor special powers that can be used to change the behavior of items typed. Some of these characters are displayed in the following table: ^ Character ^ Behavior | | * | wildcard for zero or more of "any" character | | \ | escape the following character | | " " (or ' ') | quote the enclosed characters | Therefore, to take control of **look at me.text** with the **cat** utility, change into the **example/** subdirectory and do the following: lab46:~$ cd badname/example lab46:~/badname/example$ cat look* or... lab46:~/badname/example$ cat "look at me.text" or... lab46:~/badname/example$ cat look\ at\ me.text In each case you are properly instructing the shell how to display the file. You should now have the ability to handle these malformed or inappropriately named files. So the best way to familiarize yourself with these new capabilities is to play with them. =====Exercise===== Using the three special characters outlined above, I'd like you to perform the appropriate operations on the files in the **exercise/** directory. (In most cases, being able to view their contents will be sufficient). Change into the **exercise/** subdirectory and have fun. ^ 1-3. ^|Using the * wildcard:| | ^ a.|Choose at least 3 files and attempt to gain access to their contents.| |:::^ b.|Submit the successful command-lines and detail any interesting observations you made.| ^ 4-6. ^|Using the \ escape character:| | ^ a.|Choose at least 3 different files and attempt to gain access to their contents.| |:::^ b.|Submit the successful command-lines and detail any interesting observations you made.| ^ 7-9. ^|Using the shell quoting facilities:| | ^ a.|Attempt to do the same for the remainder of the files.| |:::^ b.|Show me the successful command-lines, and explain any observations you made.| __**NOTE:**__ You may need to combine some of these special characters to accomplish the task. My desire is for you to give all of them a fair trial, not just rely on one. And do not use any shortcuts you may have inadvertently discovered- They are useful outside of the assignment, but here I want you to show me you understand the logic behind it. ^ 10. ^|Do the following:| | ^ a.|Change into the **challenge/** subdirectory.| |:::^ b.|Remove the file (and ONLY the file) located there.| |:::^ c.|Tell me how you were able to accomplish this.| __**NOTE:**__ For the challenge, do NOT use the **-r** argument to **rm**(**1**). =====Conclusions===== All questions in this assignment require an action or response. Please organize your responses into an easily readable format and submit the final results to your instructor. Your assignment is expected to be performed and submitted in a clear and organized fashion- messy or unorganized assignments may have points deducted. Be sure to adhere to the submission policy. The successful results of the following actions will be considered for evaluation: * your responses to various questions submitted at the appropriate questionnaire using the **gimmeh** tool.