Setting up folders is cool, but a folder without any contents is as useful as a box with nothing in it!
Now that you're familiar with creating folders via the command line, It is time to fill those folders with files.
We will stick with the format of the last chapter, meaning we will show one example of creating files without code in them and the other with code. This way, even if you are not a programmer already, you can have an appreciation of why folders and files are useful for programmers as well!
Creating files
Non-code example
In the last chapter, you created a folder structure for school coursework. This folder was called second semester. As a little exercise in the previous chapter, you also created folders inside the second semester folder for each course (art history, biology, etc).
As you can imagine, different courses will require different kinds of files inside. For example, a humanities class like art history might require an end of term paper. This file is likely to be a text file. 🎨 Maybe the biology class will require research and findings from this semester! This file is likely to be a spreadsheet. 🐢
You can create all types of files from the command line itself.
This is much faster than creating the file individually via different applications like Microsoft Excel or a word processor and running "Save As."
Let's first work with the art history example. If you use the command cd
to move into the "Art history" directory, you can then use a command called touch
to create a file for our end-of-term paper.
Touch is a fairly creepy sounding command, but here's what it does:
tells your system to look for a certain file
If the file not already exist, your system will create that file for you.
In this case, let's create a file called term-paper.txt
.
The command will look like this:
touch term-paper.txt
It's as simple as that! Now if you look back in Finder, you will be able to see that this file has been created inside your "Art history" folder. It is currently empty, but you can open it at anytime from Terminal to edit the contents as you normally would:
open term-paper.txt
Now it's time to create a second file. This second file will be in the Biology folder. This means we have to change directories to the Biology folder!
You can put into practice changing directories to move up one level. Two dots represent the parent directory of the directory where you are currently, so you can cd ..
to move up one level in your folder structure.
cd ..
At this point, you would be back in the "Second semester" directory.
Now, you can type cd Biology
to move into the Biology directory. From here, you can write the same touch command with the name of the file you want to create and the file extension.
touch research-findings.csv
Here is what the whole series of commands looks like:
Notice that upon running open research-findings.csv
, the file opens automatically in Microsoft Excel. Terminal is smart enough to know which application should open which file type. 👍
Code example
In the previous chapter, you saw how to create a basic folder structure for a static website. There was a CSS folder and a folder for images.
However, both are empty. Let's add a file!
Once in the project
directory, you will create an empty HTML file. This file is typically the most fundamental page of any basic code project. HTML files are where the structure of the webpage will live and where you define paragraphs or headers, where you want elements like navigation bars, or how text should be formatted.
Run touch
plus the name of the file -- index.html
-- to create it:
touch index.html
Now, by typing ls
, you can see the project contains a CSS folder, a folder for images, and a file called index.html
. We'll come back to this file in a second.
Let's cd
into the css
directory and create another file here. This new file will have a different extension than the others we've created so far: it won't be .txt, nor .csv. nor .html. It will be .css because it will hold CSS code!
cd css
touch main.css
I can even open the HTML file in my browser to preview my file contents:
open index.html
You now have a sense of how versatile and streamlined file creation is from the command line. It's much faster than creating files individually via different applications like Word.
You just have to know the name of your file and the extension you want, and you can save yourself a lot of time and totally avoid the Save As process within different applications.
In the next chapter, you'll see how to move around and copy some of this content you've created.