Ugacomp

How to manage files and directories on a Linux server?

Where necessary, you may need to have access to a VPS server so you can follow how to implement the steps in this article.  You can get a cheaper VPS Server from Contabo with 4vCPU cores, 8GM RAM, and 32TB Bandwidth for less than $5.50 per month. Get this deal here now

Table of Contents

Cloud VPS S

$5.50 Monthly
  • 4 vCPU Cores | 8GB RAM

CLOUD VPS M

$15.50 Monthly
  • 6 vCPU Cores | 16GB RAM

CLOUD VPS L

$17.50 Monthly
  • 8 vCPU Cores | 24GB RAM

Managing files and directories on a Linux server is a fundamental aspect of system administration. Here are some common commands and tasks for file and directory management:

Navigating the File System

The command used to navigate the file system in Linux is cd, which stands for “change directory.” You can use this command to move from one directory to another. Here’s the basic syntax:

cd [directory_path]

If you want to navigate to a specific directory, replace [directory_path] with the path of the directory you want to enter. For example:

cd /path/to/directory

To go back to the home directory of the current user, you can simply use:

cd

To go up one level in the directory structure, you can use:

cd ..

These commands allow you to navigate through the file system in the Linux terminal.

Listing Files and Directories

The command used to list files and directories in Linux is ls. Here are some common usage examples:

List files and directories in the current directory:

ls

List files and directories in a detailed (long) format:

ls -l

List all files, including hidden ones (those starting with a dot):

ls -a

Combine options to list files and directories in detailed format, including hidden ones:

ls -la

List files and directories with human-readable file sizes:

ls -lh

These are some common options for the ls command, and you can combine them as needed based on your requirements. The ls command provides a quick way to view the contents of a directory in the terminal.

Creating Directories

The command used to create directories in Linux is mkdir, which stands for “make directory.” Here’s the basic syntax:

mkdir [directory_name]

You can use this command to create a new directory in the current working directory or specify a path to create a directory at a specific location. For example:

mkdir new_directory

This command will create a directory named “new_directory” in the current working directory.

To create a directory at a specific location, provide the full path:

mkdir /path/to/new_directory

You can also create multiple directories simultaneously by specifying their names:

mkdir dir1 dir2 dir3

Creating Files

There are several commands you can use to create files in Linux. Here are a few common ones:

touch

The touch command is often used to create empty files or update the access and modification timestamps of existing files. To create a new empty file:

   touch new_file.txt

echo

The echo command is often used in combination with the > operator to create and write content to a file. For example:

echo "Hello, this is some content." > new_file.txt

This will create a new file named “new_file.txt” and write the specified content into it.

nano or vim or emacs

Text editors like nano, vim, or emacs can be used to create and edit files. For example:

  • Using nano:
nano new_file.txt
  • Using vim:
vim new_file.txt
  • Using emacs:
emacs new_file.txt 

These text editors allow you to create and edit files directly in the terminal.

touch new_file.txt

Copying Files and Directories

In Linux, the cp command is used to copy files and directories. Here are some common examples:

Copy a file to another location

cp file.txt /path/to/destination/

This command will copy the file “file.txt” to the specified destination directory.

Copy a file with a new name

cp old_file.txt new_file.txt

This will create a copy of “old_file.txt” with the name “new_file.txt.”

Copy multiple files to a directory

cp file1.txt file2.txt /path/to/destination/

You can copy multiple files to a specified destination directory.

Copy a directory and its contents recursively

cp -r directory /path/to/destination/

The -r option is used to copy directories and their contents recursively.

Preserve file attributes (timestamps, ownership, permissions)

 cp -a source_directory /path/to/destination/

The -a option preserves the original file attributes while copying.

Interactive copying (prompt before overwriting)

cp -i file.txt /path/to/destination/

The -i option prompts for confirmation before overwriting existing files.

Always exercise caution when using the cp command, especially when overwriting files, to avoid unintended data loss. Additionally, ensure that you have the necessary permissions to read the source files and write to the destination location.

cp file.txt /path/to/destination/

Moving/Renaming Files and Directories

In Linux, the mv command is used to move (or rename) files and directories. The basic syntax is:

mv source destination

Here are some common examples:

Move a file to another location

mv file.txt /path/to/destination/

This command moves the file “file.txt” to the specified destination directory.

Move a file with a new name (rename)

 mv old_file.txt new_file.txt

This command renames “old_file.txt” to “new_file.txt.”

Move multiple files to a directory:

mv file1.txt file2.txt /path/to/destination/

You can move multiple files to a specified destination directory.

Move a directory and its contents recursively

mv directory /path/to/destination/

The mv command with a directory moves it and its contents.

Interactive moving (prompt before overwriting)

mv -i file.txt /path/to/destination/

The -i option prompts for confirmation before overwriting existing files.

Removing Files and Directories

In Linux, the rm command is used to remove (delete) files and directories. Here are some common examples:

Remove a file

rm file.txt

This command deletes the file “file.txt.”

Remove multiple files

rm file1.txt file2.txt

You can delete multiple files in a single command.

Remove a directory and its contents recursively

rm -r directory

The -r option is used to delete a directory and its contents recursively.

Remove a directory and its contents forcefully (without confirmation)

rm -rf directory

The -f option stands for force, and it removes the directory and its contents without asking for confirmation. Be cautious when using this command, as it can lead to data loss.

Remove files interactively (prompt before removing)

rm -i file.txt

The -i option prompts for confirmation before removing each file.

Remove a directory interactively

rm -ri directory

The -i option prompts for confirmation before removing each file and directory.

Viewing File Contents

In Linux, the cat command is commonly used to view the contents of a file. Here’s the basic syntax:

cat filename

For example:

cat example.txt

This command will display the entire contents of the “example.txt” file in the terminal.

Alternatively, you can use other commands like less or more to view file contents one screen at a time, allowing for easier navigation:

less filename

or

more filename

You can navigate through the content using arrow keys with both less and more. To exit less, press q. To exit more, press the spacebar to scroll through the content, and press q to quit.

If you need to view only a portion of the file, you can use the head or tail commands:

head filename  

or

tail filename

These commands can be helpful for quickly checking the contents of a file without opening a text editor.

File Permissions and File Ownership

In Linux, the chmod command is used to set file permissions, and the chown command is used to set file ownership.

Setting File Permissions with chmod

The basic syntax for chmod is:

chmod [permissions] filename

Here are some examples:

  • Symbolic notation:
chmod u+rwx,go-rwx filename

This example grants read, write, and execute permissions to the owner (u) and removes all permissions for the group (g) and others (o).

  • Numeric notation:
chmod 755 filename

This example sets read, write, and execute permissions for the owner and read and execute permissions for the group and others.

Setting File Ownership with chown:

The basic syntax for chown is:

chown [owner]:[group] filename

Here are some examples:

  • Change owner and group
   chown user:group filename

This example changes the owner to “user” and the group to “group.”

  • Change only the owner
chown user filename

This example changes only the owner to “user,” leaving the group unchanged.

Finding Files

In Linux, the find command is used to locate and search for files and directories based on various criteria. Here’s the basic syntax:

find [search_path] [options] [expression]

Here are some common examples of using the find command:

Find a file by name

find /path/to/search -name "filename"

This command searches for files with the specified name within the specified path.

Find files by extension

find /path/to/search -name "*.txt"

This command finds all files with the “.txt” extension within the specified path.

Find files modified in the last N days

find /path/to/search -mtime -N

Replace N with the number of days. For example, to find files modified in the last 7 days: -mtime -7.

Find files owned by a specific user

find /path/to/search -user username

This command finds files owned by the specified user.

Find files by size

find /path/to/search -size +10M

This example finds files larger than 10 megabytes. You can use suffixes like k (kilobytes) and G (gigabytes).

Find and execute a command on each file

find /path/to/search -name "*.txt" -exec command {} \;

Replace command with the actual command you want to execute on each file found.

Combine multiple conditions

find /path/to/search -name "*.txt" -mtime -7 -size +1M

This command finds “.txt” files modified in the last 7 days and larger than 1 megabyte.

Always be careful when using the find command, especially when combining conditions that involve deletion (-exec rm {} \;). Always double-check your command to avoid unintended consequences.

Archiving and Compression

In Linux, archiving and compression are often performed using the tar command for archiving and gzip or bzip2 for compression. Here are some common commands:

Archiving with tar

tar -cvf archive.tar files/

This command creates a new tar archive named “archive.tar” from the specified files.

Extract files from a tar archive

tar -xvf archive.tar

This command extracts the contents of the “archive.tar” archive.

Create a compressed tar archive (tar.gz)

tar -cvzf archive.tar.gz files/

This command creates a tar archive and compresses it using gzip.

Extract files from a compressed tar archive (tar.gz)

tar -xvzf archive.tar.gz

This command extracts the contents of a compressed tar archive.

Compression with gzip

gzip file.txt

This command compresses “file.txt” and appends a “.gz” extension.

Decompress a gzip-compressed file

gzip -d file.txt.gz

This command decompresses a gzip-compressed file.

Compression with bzip2

bzip2 file.txt

This command compresses “file.txt” and appends a “.bz2” extension.

Decompress a bzip2-compressed file

bzip2 -d file.txt.bz2

This command decompresses a bzip2-compressed file.

Combining Commands

You can also combine these commands for more complex operations. For example, creating a compressed tar archive:

tar -cvzf archive.tar.gz files/

Or extracting a compressed tar archive:

tar -xvzf archive.tar.gz

These commands provide various options for archiving and compressing files and directories in Linux. Choose the appropriate command based on your specific requirements.

Hire us to handle what you want

Hire us through our Fiverr Profile and leave all the complicated & technical stuff to us. Here are some of the things we can do for you:

  • Website migration, troubleshooting, and maintenance.
  • Server & application deployment, scaling, troubleshooting, and maintenance
  • Deployment of Kubernetes, Docker, Cloudron, Ant Media, Apache, Nginx,  OpenVPN, cPanel, WHMCS, WordPress, and more
  • Everything you need on AWS, IBM Cloud, GCP, Azure, Oracle Cloud, Alibaba Cloud, Linode, Contabo, DigitalOcean, Ionos, Vultr, GoDaddy, HostGator, Namecheap, DreamHost, and more.
 

We will design, configure, deploy, or troubleshoot anything you want. Starting from $10, we will get your job done in the shortest time possible. Your payment is safe with Fiverr as we will only be paid once your project is completed.