- Is it bad practice for folder name to contain a dot (.)? How about a file name with multiple dots?
- 5 Answers 5
- Dotfiles – What is a Dotfile and How to Create it in Mac and Linux
- What are dotfiles?
- Examples of common dotfiles
- How to Find Dotfiles
- Why Use Dotfiles?
- How to Create Dotfiles
- How to set up a folder to hold your dotfiles
- How to set up configurations
- How to personalise your Zsh prompt
- How to customise Vim
- What are aliases and functions
- How to Symlink your Dotfiles
- How to Version Control your Dotfiles
- How to host your dotfiles on GitHub
- Conclusion
Is it bad practice for folder name to contain a dot (.)? How about a file name with multiple dots?
Sometimes it makes practical sense for a folder name to contain a dot ( . ). For example, you are storing data for an experiment conducted at L=0.5. So the folder might be named:
If the dot is the first character, the folder will be hidden. Other than that, I don’t think it matters.
5 Answers 5
As far as I know there are no issues with naming folders and files with a single or multiple dots.
Ubuntu generally does not use the dot and three characters (such as .txt) to identify the file type. So this has no special meaning in the Ubuntu context. This is useful when sharing files with Windows. Ubuntu uses Magic Numbers in the first few bytes of the file to identify the file type. However, Nautilus ignores the magic numbers if the dot and three characters extension is available to identify the file type. This setting can be changed. See Force nautilus to ignore extensions
In Ubuntu, starting a file or folder names with a dot, such as .experiment_L0.5 , makes the file or folder hidden. You can toggle the display of hidden files by pressing Ctrl + H in Nautilus. In Windows a file name starting with a . in front of it is not hidden. So if you transfer a hidden file named .experiment_L0.5 into a Windows system, it will be plainly visible.
In Ubuntu a file name can end with a dot, as it has no special meaning placed at the end. However, in Windows a dot separates the file name and extension, and a file name ending with a dot but no extension is not allowed. When I tried to create such a file in Windows I got a file with just the name, no dot, no extension.
Dotfiles – What is a Dotfile and How to Create it in Mac and Linux
Dionysia Lemonaki
Dotfiles are important files that will play an integral role in your career as a software developer.
First, they can help make you more productive. But not only that — you’ll be able to have that productive setup you created for youself on any machine.
This article is an introduction on how to get started with dotfiles.
You’ll learn what they are, how to locate them on your system, and how to create a couple of simple dotfiles. In addition I’ll give you some suggestions and resources on how to customise your settings and expand your knowledge.
What are dotfiles?
Many computer software programs store their configuration settings in plain, text-based files or directories.
Dotfiles are configuration files for various programs, and they help those programs manage their functionality.
What sets them apart from regular files and directories is their prefix.
Dotfiles are named that way because each file and directory starts with a dot ( . )
On Unix based systems, dotfiles are hidden by the Operating System by default.
Examples of common dotfiles
Most programs store their configurations in your home directory by default.
Some common dotfiles that you may have heard of or used before are:
- If you use the Bash shell, you might have a .bash_profile and .bashrc file, both of which contain scripts that load each time you start a new terminal session and configure the shell.
- If you use the Zsh shell, which is the new default for MacOS, you would have (or would’ve created) a .zshrc file which configures and customises the shell.
- If you use the command line code editor Vim, you would store its configurations in a .vimrc file.
- After setting up and configuring Git on your local machine, you would have a .gitconfig file, which would contain all your information and settings.
- Many programs, instead of storing their configurations in your home directory, instead store them in the hidden .config directory (folder) on your system.
How to Find Dotfiles
In Finder, the root of your Home directory might look something like this:
But you’ve seen that computer systems have many more files stored which are hidden by default.
To view dotfiles in Finder, go to the root of your Home directory and hold down the keys Command Shift . and the same time.
You’ll soon see a variety of dotfiles that either you created on your own or were created when you installed a piece of software.
To view dotfiles from the command line (which is where you’ll use and interact with them the most), you again have to add some extra steps to your search.
The list command, ls , which lists all files and directories in the current directory, doesn’t show dotfiles by default — despite the fact that they’re there.
First, navigate to your home directory. You can use the cd command to help you get there, if you’re not there already.
Then use the ls command with the -a flag, which stands for all , like so:
If you want to see some extra bits of information about your files, you can also use the -l flag, which lists files and directories in long format and includes details about the date and time they were created, their size, and so on.
In the output, you’ll see all files and directories – inlcuding all hidden ones – in your currect home directory.
Each file and directory that starts with a period/dot is a dotfile.
Why Use Dotfiles?
Your dotfiles are personal to you.
You spend a sufficient amount of time fine-tuning your setup. You curate configurations and settings that best suit your workflow, aesthetic, and preferences. And you end up with a development environment that helps you, personally, be more productive.
What if after all that time you spent, you now have to switch to a new, different machine? Does that mean you have to start all over again from the beginning?
How would you remember the exact settings and commands you used?
Or what if you have a second machine and you want your set up to be exactly the same on both systems?
One of the main goals of developers is to automate repetitive tasks.
Creating a dotfile repository that is source-controlled and hosted on GitHub will save you time when you want to set up a new computer and install the exact same settings you created for your previous one.
That way all your settings and preferences can be reusable and consistent on other machines.
How to Create Dotfiles
How to set up a folder to hold your dotfiles
It’s good practice to have all your dotfiles in their own folder.
For simplicity’s sake, I’ll show an example of how to create a folder at the root of your home directory. But you can add the folder wherever is more convenient for you.
Also, I’ll be showing examples of how to create a .zshrc and .vimrc file, but similar ideas apply to any other dotfiles you create.
Navigate to your home directory ( cd ) and make a directory named dotfiles that will hold all your configuration files:
To create dotfiles, you use the touch command and pass the name(s) of the file(s) as the argument to the command. The filename(s) will have a preceding period.
To create a .zshrc and a .vimrc file in the dotfiles directory, do this:
touch ~/dotfiles/.zshrc ~/dotfiles/.vimrc
If those files already exist on your system and you want to move them to the dotfiles directory, you can move them there using the mv command:
The first argument is the current path of the file – the tilde ( ~ ) stands for the home direcory. By default, most hidden confuguration files are located there.
The second argument is the path where you want to move the file to. In this case you want to move it to the the dotfiles directory that is located in the home directory.
You can do the same for the .vimrc file:
ls -a dotfiles . .. .vimrc .zshrc
With those files in place you can then add all your preferred configurations there.
How to set up configurations
Below are some ideas that could help you start the configurations of the dotfiles you created.
How to personalise your Zsh prompt
After setting up the .zshrc file, anything added to that file will affect the customisation of your Zsh shell program.
Now could be the time to customise your shell prompt. This will be personal to your taste, but here are some resources to get you started:
How to customise Vim
After creating the .vimrc file, you can customise the command line text editor Vim. Here are a couple of resources to help you start that process:
What are aliases and functions
One way to improve your workflow and enhance your productivity, is to cut down the time it takes to type commands you use often. You can achieve that by creating shortcuts.
Aliases are shortcuts to terminal commands. They are a shorter version of a long command.
As a developer you’ll use Git often, so it’s a good idea to create Git aliases to help save time on long, repetitive Git commands. Have a read on some of the most helpful ones on this freeCodeCamp article.
Another way to save time is by simplifying processes.
You can combine two commands into one by creating an isolated behavior that does one specific job. You can do that by creating functions.
One helpful function to create is to combine the command for creating a new directory ( mkdir ) with the command to change directory ( cd ).
In this way, you will create a new folder and immediately change into it – all in one step.
The function to do so looks like this:
You can add both aliases and functions to your .zshrc file or you can create separate .aliases and .functions dotfiles.
How to Symlink your Dotfiles
You may have noticed that none of the settings you added to the files in the dotfiles folder have any effect on your system.
A program’s configuration files, as mentioned previously, are hidden and stored in the home directory by default. This is where the program will look for and read its settings from.
It’s a good idea to symlink (or create a symbolic link -a pointer) the file in the dotfiles directory where you have stored your preferred settings alongside with other files you created, with the file in its default home directory.
It’s like the file will be in two places at the same time!
The file will be in both the dotfiles directory and there will also be a ‘copy’ of it in the home directory.
To create a link, you use the ln (stands for link) command with the -s argument (which stands for symbolic).
Here’s how to symlink the .zshrc and .vimrc files:
ln -s ~/dotfiles/.vimrc ~/.vimrc ln -s ~/dotfiles/.zshrc ~/.zshrc
This will make the programs you use aware of where their configuration files are normally – back in the home directory.
ls -l ~/.zshrc lrwxr-xr-x 1 dionysialemonaki staff 39 Oct 21 18:30 /Users/dionysialemonaki/.zshrc -> /Users/dionysialemonaki/dotfiles/.zshrc
Looking at the details of the .zshrc file, it shows that the file located in the home directory points to the file in the dotfiles directory. The -> indicates the symlink.
Symlinking all your dotfiles manually is a cumbersome process and can get tiring and repetitive quickly as you add more dotfiles to the folder.
To make the process easier, you can create a shell script that will automate calling ln -s on the dotfiles you create or use a utility for that job.
How to Version Control your Dotfiles
Having your files under version control will help you track all the changes you make to them over time, and will also allow you to share them on GitHub.
Make sure to change directory into the dotfiles directory ( cd dotfiles ).
Follow these steps to organise your files in a git repository:
git commit -m "Added dotfiles"
How to host your dotfiles on GitHub
Make sure you’ve signed into your GitHub account.
Then, create a new repository:
Give it a name add click «Create repository».
Next, in the command line, add:
git remote add origin url #where 'url',the GitHub url of the repository you previously created #ending in .git
And now you are able to share your dotfiles online!
Conclusion
And there you have it – you now know the basics of dotfiles! I hope you found this tutorial helpful.
Your dotfiles project will most likely follow you throughout your career and will grow the more you learn about dotfiles themselves. And it’ll also change as you learn more about what you like and don’t like regarding your workflow and development environment setting by lots of trial and error.