How to Manage Files from the Linux Terminal

Create Directory – subdirectory, other than that What mkdir command do in Linux

After knowing about ls command for listing entries inside directory, we are now moving to creating directory in Linux system. On Linux, we can use mkdir command. Mkdir is short for “make directory”.

What is mkdir

Mkdir is a command for creating directories in Linux system. This command is a built-in command.

Run mkdir command

You can type mkdir directly from your console to use it.

$ mkdir

By default, running mkdir without any parameter will create directory under the current directory. Here’s a sample of it :

mkdir command

From screenshot above, we created directory called office. When we run mkdir command, we are in/home/pungki directory. So then the new directory, which is office, is created under /home/pungkidirectory. If we put an exact location – for example : /usr/local – , then Linux will create a directory under /usr/local directory.

When Linux found that the directory which suppose to be created is already exist, then Linux will telling us that Linux can’t cretate it.

mkdir directory exist

Another pre-requisite of creating directory that you must have access to the location where the directory want to be created. When you don’t have it then mkdir will report an error.

mkdir permission denied

Create multiple directories

We can also create multiple directories at the same time. Let say we want to create directories namedubuntu, redhat and slackware. Then the syntax will be like this :

$ mkdir ubuntu redhat slackware

create multiple directories

Add directory include its sub-directory

When you want to created a include its sub-directory, you will need to use -p parameter. This parameter will create parent directory first, if mkdir cannot find it. Let say we want to create directory named letter and directory named important under directory letter. Then the syntax will be like this :

$ mkdir -p letter/important

mkdir sub-directory

Set access privilege

Using -m parameter, we can also set the access privilege for the new directory on-the-fly. Here’s an example.

$ mkdir -m=r– letter

The above command will create a directory named letter and give access privilege read-only for thedirectory owner, directory group owner and anybody.

mkdir set privilege

Print message a message for each created directory

If we want, we can use -v parameter to do this. Here’s an example.

$ mkdir -v ubuntu redhat slackware

mkdir verbose


Mkdir command is also one of the basic command that must known for everyone who want to learn Linux. As usual, you can always type man mkdir or mkdir –help to display mkdir manual page and explore it more detail.

8 Pratical Examples of Linux “Touch” Command

In Linux every single file is associated with timestamps, and every file stores the information of last access time, last modification time and last change time. So, whenever we create new file, access or modify an existing file, the timestamps of that file automatically updated.

Linux Touch Command

In this article we will cover some useful practical examples of Linux touch command. The touch command is a standard program for Unix/Linux operating systems, that is used to create, change and modify timestamps of a file. Before heading up for touch command examples, please check out the following options.

Touch Command Options

  1. -a, change the access time only
  2. -c, if the file does not exist, do not create it
  3. -d, update the access and modification times
  4. -m, change the modification time only
  5. -r, use the access and modification times of file
  6. -t, creates a file using a specified time

1. How to Create an Empty File

The following touch command creates an empty (zero byte) new file called sheena.

# touch sheena

2. How to Create Multiple Files

By using touch command, you can also create more than one single file. For example the following command will create 3 files named, sheena, meena and leena.

# touch sheena meena leena

3. How to Change File Access and Modification Time

To change or update the last access and modification times of a file called leena, use the -a option as follows. The following command sets the current time and date on a file. If the leena file does not exist, it will create the new empty file with the name.

# touch -a leena

The most popular Linux commands such as find command and ls command uses timestamps for listing and finding files.

4. How to Avoid Creating New File

Using -c option with touch command avoids creating new files. For example the following command will not create a file called leena if it does not exists.

# touch -c leena

5. How to Change File Modification Time

If you like to change the only modification time of a file called leena, then use the -m option with touch command. Please note it will only updates the last modification times (not the access times) of the file.

# touch -m leena

6. Explicitly Set the Access and Modification times

You can explicitly set the time using -c and -t option with touch command. The format would be as follows.

# touch -c -t YYDDHHMM leena

For example the following command sets the access and modification date and time to a file leena as 17:30(17:30 p.m.) December 10 of the current year (2012).

# touch -c -t 12101730 leena

Next verify the access and modification time of file leena, with ls -l command.

# ls -l

total 2
-rw-r--r--.  1 root    root   0 Dec 10 17:30 leena

7. How to Use the time stamp of another File

The following touch command with -r option, will update the time-stamp of file meena with the time-stamp ofleena file. So, both the file holds the same time stamp.

# touch -r leena meena

8. Create a File using a specified time

If you would like to create a file with specified time other than the current time, then the format should be.

# touch -t YYMMDDHHMM.SS tecmint

For example the below command touch command with -t option will gives the tecmint file a time stamp of18:30:55 p.m. on December 10, 2012.

# touch -t 201212101830.55 tecmint

We’ve almost covered all the options available in the touch command for more options use “man touch“. If we’ve still missed any options and you would like to include in this list, please update us via comment box.

Delete Directory Command in Terminal

You need to use the rmdir utility / command. The rmdir utility removes the directory entry specified by each directory argument, provided it is empty. Arguments are processed in the order given. In order to remove both a parent directory and a subdirectory of that parent, the subdirectory must be specified first so the parent directory is empty when rmdir tries to remove it.

Please note directory often referred to as a folder in the Apple Mac OS X and Microsoft Windows operating systems.


The syntax is:

rmdir dirName


rmdir [option] dirName

WARNING! These examples may crash your computer or may result into data loss, if executed without proper care.

Ubuntu delete directory called /tmp/foo

Open the terminal. Type the following command:
$ rmdir /tmp/foo
To remove foo and bar empty directories, type:
$ rmdir foo bar

Recursive directory removal on Ubuntu

Remove all files and directories including all sub-directories i.e. recursive removal:
$ rm -rf /path/to/directory
$ rm -rf /tmp/foo

Please note that you can also pass -p option to the rmdir command. Each directory argument is treated as a pathname of which all components will be removed, if they are empty, starting with the last most component:
$ rmdir -p /tmp/x/y/z

Deleting directories as a superuser on ubuntu

If directory is owned by root or any other user or if you are getting “access denied/permission denied” message, try:

### Warning: careful with sudo and rm/rmdir command. ### 
### Check twice before you hit [enter] key ###
sudo rmdir /path/to/dir
sudo rm -rf /path/to/dir

Moving or Rename File / Directory in Linux – 10 Practical mv Command Examples

After knowing about copy command, the next command which is related is mv command. When you want to move files from one place to another and you don’t want to duplicate it, then mv command is absolutely right for this task.

What is mv command

mv command is a command that similar with cp, but it does not create a copy / duplicate of files or directories. This command is installed by default on your Linux system, in any kind of Linux you are using. Please take a look of some examples using mv command in day-to-day operation.

1. Moving files

The requirement of moving file is the file source location must be different with the files destination location. Here’s an example. To move file_1.txt from current directory to another directory , for example/home/pungki/office, here’s the syntax :

$ mv file_1.txt /home/pungki/office

mv command

As we can see, when we move the file_1.txt, the file_1.txt from previous directory is deleted.

2. Moving multiple files

If we want to move multiple files, we put them in one line separated by space.

$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office

Move multiple files

You can also use pattern if your files have it. For example, to move all files which have .txt extension, we can use this command :

$ mv *.txt /home/pungki/office

Move using pattern

3. Moving directory

Different from the copy command, moving directory using mv command is pretty straight forward. To move a directory, you can just to use mv command without any options. Please take a look screenshot below.

Moving directory

4. Renaming files or directory

We also use mv command to rename files and directory. But in order to do so, the destination location must be the same with the source location. Then the file name must be different.

Let say we are inside /home/pungki/Documents folder and we want to rename file_1.txt into file_2.txt. Then the command will be like :

$ mv file_1.txt file_2.txt

If we mention the absolute path, then it will look like this :

$ mv /home/pungki/Documents/file_1.txt /home/pungki/Documents/file_2.txt

Renaming file

5. Renaming directory

The above rule is also applied to directory. Take a look this example :

$ mv directory_1/ directory_2/

Renaming directory

6. Print what happen

When you are moving or renaming a large number of file / directory, you may want to know does your command works successfully or not without seeing to the destination location. To do this, we can use -voption.
For example we want to move all txt files and want to check it. Then the command will be like this.

$ mv -v *.txt /home/pungki/office

mv with verbose mode

The same way is applied to directory.

mv directory with verbose mode

7. Using interactive mode

When you are moving file into another location, and there is already exist the same file, then by default mv will overwrite it. No pop-up notification for this. To make a notification for overwriting file, we can use -i option.

Let say we want to move file_1.txt to /home/pungki/office. Meanwhile, file_1.txt is already exist in /home/pungki/office directory.

$ mv -i file_1.txt /home/pungki/office

mv with interactive mode

This notification will aware us about the existence of file_1.txt in the destination location. If we press “y” then the file will be moved, otherwise, it will not.

8. Using update option

While -i are notify us about overwriting files, then -u option will perform update only if the source is newer than destination file. Let’s take a look example below.

Update only newer

We have file_1.txt and file_2.txt with this attributes :

  • File_1.txt has 84 bytes file size and it last modified time is 12:00
  • File_2.txt has 0 bytes file size and it last modified time is 11:59

We want to move them into /home/pungki/office directory. But in the destination location, we already have file_1.txt and file_2.txt.

We move file_1.txt and file_2.txt from current directory into /home/pungki/office using command :

$ mv -uv *.txt /home/pungki/office

As the result, we see those files are moved. Those file is moved because their last modified time stamp is newer than the files in /home/pungki/office directory.

9. Do not overwrite any existing file

If -i options is asking us about overwriting files, than -n option will not allow us to overwrite any existing files.

Using example on point 8, if we change the option from -u to -n, combine with -v option, then we will see that there are no files moved into /home/pungki/office directory.

$ mv -vn *.txt /home/pungki/office

No overwrite

10. Create backup when copying

By default, moving files will overwrite the destination files if there are already exist before. But what happen if you are moving wrong files, and the destination files are already overwritten by the new ones? Is there a way to retrieve the old one? Yes there is. We can use -b option. -b option will make a backup of destination file before it overwritten by the new one. Once again, we will use scenario from point 8 above.

$ mv -bv *.txt /home/pungki/office

Backup option

As you can see on the screenshot, on the /home/pungki/office directory, we have a file named file_1.txt~ and file_2.txt~ . The tilde sign (~) means that those files are backup. We can see the attribute of them is older than file_1.txt and file_2.txt.


Moving file or directory also one of the basic command in Linux system. As usual you can type man mv or mv –help to display its manual page to explore more detail.

15 Linux cp Command Examples – Create a Copy of Files and Directories

Copying files or directories is one of basic activity in every operating system. Backup activity is basically is creating a copy of files and directories. On Linux system, we can use cp command to do it.

What is copy command

As we mentioned above, cp command is a command to create copy of files and directories. Here’s some samples of cp command that might useful in day-to-day operation

1. Run cp without any options

This is a very basic cp usage. To copy a file name myfile.txt from one location to another location, we can type like this :

$ cp myfile.txt /home/pungki/office

Copy without options

If we don’t type absolute path, it mean that we are copying a file on current directory. From example above,myfile.txt is located in /home/pungki/Documents. We don’t have to type/home/pungki/Documents/myfile.txt to copy myfile.txt if we are in that /home/pungki/Documentsdirectory. While /home/pungki/office is a folder where the file will be copied.

2. Copy multiple files at the same time

To copy multiple file at the same time, we can just put the files behind the copy command which separated by space. Here’s an example :

$ cp file_1.txt file_2.txt file_3.txt /home/pungki/office

Copying multiple files

3. Copy a directory

Copying a directory is a little bit tricky. You need to add -r or -R option to do it. -r or -R option means recursive. This option is a must whether the directory is empty or not. Here’s an example :

$ cp -r directory_1 /home/pungki/office

Copy directory

One more thing to note is that you need to remove the trailing slash behind the directory name. Otherwise you will have an error message like cp : omitting directory ‘directory_1/’

Copy directory error

If you got that error, the directory will not copied to the destination folder.

4. Create hard links to files instead of copying them

Copying file means you must have some space on the storage to store the copied files. Sometimes for any reasons, you may want to create “shortcut” or links to the files instead of copying them. To do this, we can use -l option.

$ cp -l file_4.txt /home/pungki/office

Copy hardlinks

From screenshot above, we see that a hardlink of file_4.txt was copied into /home/pungki/office/file_4.txt. It marked by the same inode, 835386. But please note, hardlinks cannot be created into directories. Let’s take a look an example below.

The original directory_1 has inode number 278230
Inode number of original directory

The original file_5.txt has inode number 279231
Original inode number of file

Do cp command on directory_1
Copy using -rl options

The copied directory_1 has inode number 274800
Inode number of copied directory

The copied file_5.txt had inode number 279231. Same with its original file
Inode number of copied file

5. Create symbolic links to files

There is another type of links called softlinks or symbolic links. We use -s option to do this. Here’s a sample command.

$ cp -s /home/pungki/Documents/file_6.txt file_6.txt

Creating symlinks only can be done in current directory. On screenshot above, we want to create symbolic links from source directory – /home/pungki/Documents/file_6.txt to /home/pungki/office. But to create symbolic links, I must inside /home/pungki/office as a destination folder. Once I manage to be there, I can run cp -s command above.

Then when you list the file with detail, you will see that /home/pungki/office/file_6.txt is pointing to the original file. Its marked with arrow sign after the file name.

Symbolic links

6. Copy without following symbolic links in Source

To do this, we can use -P option. When cp command found a file with symbolic links, it will copy the as is. Take a look at the sample below.

$ cp -P file_6.txt ./movie

Copy using -P option

As you can see, the cp command will copy file_6.txt as is. The file type still a symbolic link.

7. Copy with following symbolic links in Source

Now we can do this with -L option. Basically, this is an opposite of -P option above. Here’s the sample.

$ cp -L file_6.txt ./movie

Copy using -L option

With this option, the copied file is the same file with the source file of file_6.txt. This is known from the file size. The copied file has 50 bytes file size while the file_6.txt as symbolic link has 33 bytes file size.

8. Archive the files

When we are going to copy a directory, we will use -r or -R option. But we can also use -a option to archive file. This will create an exact copy of files and directories including symbolic links if any. Here’s a sample :

$ cp -a directory_1/ /home/pungki/office

Copy using -a option

The above command will copy a directory named directory_1 into folder /home/pungki/office. As you can see, the file_6.txt still copied as symbolic links.

9. Explain what is being done

By default, when copying activity is success, we will see a command prompt again. If you want to know what happen during the copying file, we can use -v option.

$ cp -v *.txt /home/pungki/office

Verbose option

When we copying all txt files in current directory to /home/pungki/office/ directory, -v option will show what is being done. This additional information will make us more sure about the copying activity.

10. Copy only when the source file is newer

To do this, we can use -u option. Take a look this example below.

$ cp -vu *.txt /home/pungki/office

Copy only if newer

In the beginning, we see file_1.txt has 0 bytes file size. Then we edit it using vi, add some content and save it. Next, we see the file size has changed into 36 bytes.
Meanwhile in /home/pungki/office directory, we already have all *.txt files. When we use -u option, combine with -v option to see what is being done, cp command will only copy a file(s) which is newer from destination directory. As the result, we see that only file_1.txt is copied into /home/pungki/office directory.

11. Use interactive mode

Interactive mode will ask if the destination folder have already the file. To activate interactive mode, use -ioption.

$ cp -ir directory_1/ /home/pungki/office/

Interactive mode

12. Create backup date of each copied file

When the destination folder already have the file, by default cp command will overwrite the same file in the destination directory. Using –backup option, cp command will make a backup of each existing destination file. ../office will refer to /home/pungki/office. Here’s a sample :

$ cp –backup=simple -v *.txt ../office

Backup option

As we can see, –backup=simple option will create a backup file which marked by a tilde sign (~) at the end of the file. –backup option has some Control, which are :

  • none, off : never backups (even if –backup is given)
  • numbered, t : make numbered backups
  • existing, nil : numbered if numbered backup exist, simple otherwise
  • simple, never : always make simple backups

13. Copy only file attributes

Cp command also provide us with –attributes-only option. As we can guess from its name, this option will only copy a file name and its attributes without copying any data. Here’s a sample.

$ cp –attributes-only file_6.txt -v ../office

Copy attributes only

From screenshot above, the original file_6.txt file has 50 bytes file size. Using –attributes-only option,the copied file will have 0 bytes file size. This is because the content of file is not being copied.

14. Force copying

Using -f option will force the copying activity. If the destination files cannot be opened, then -f will try again.

$ cp -f *.txt -v ../office

Copy with force

15. Remove destination before copy

To do this, we can use –remove-destination option. This option is contrast with -f option above. If the cp command find the same file name on the destination folder, cp command will remove destination file first, the copy the new one. Here’s an example.

$ cp –remove-destination *.txt -v ../office

Remove destination option


Cp command is one of basic Linux commands. For those who want to learn Linux, must know this command. Of course you can type man cp or cp –help from your console to display its manual page to explore more detail.


Posted on June 15, 2015, in Linux (Ubuntu/CentOS). Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: