List command in linux to list directories

20 Basic ‘ls’ Command Examples in Linux

Listing files is one of the most widely undertaken tasks by ordinary Linux users and system administrators. In Linux, the ls command, short for “list” is used to list or display the contents of a directory.

This could either be your current directory or any other directory on the system. The command displays both files and subdirectories and in most cases distinguishes between different file types using color codes.

Without any command-line options, the ls command will simply list all the directory contents. However, it provides an array of handy command-line options to manipulate the output and display the desired output.

You might also like:

In this article, we’ll be discussing the basics of ls command examples with all the available various command options that it provides in Linux.

ls Command Options in Linux

The ls command takes the following syntax:

$ ls [ options ] /path/to/directory

The options section represents the command-line arguments that can be passed to manipulate the output of the command.

In this tutorial, we will cover the following ls command arguments.

Options Description
ls -m Lists directory contents separated by a comma.
ls -Q Displays directory contents enclosed by quotation marks.
ls -l Displays files in a long-list format.
ls -lh Display file size in a human-readable format.
ls -g Omits group ownership column.
ls -F Adds a forward slash to directories.
ls -i Display inode number of files and directories.
ls -a Display all files including hidden files.
ls *. Filters files according to the file extension.
ls -la Displays all files and directories in long list format.
ls -R Display files and directories recursively.
ls -r Sort Files in reverse.
ls -X Sort files alphabetically by file extension.
ls -tl Display files according to file creation date and time.
ls -n List UIDs and GIDs.

1. List Files and Directories in Linux

Running ls command without passing any command-line options or arguments, the ls command simply lists the directory contents in alphabetical order. Here we won’t be able to view details like file types, size, modified date and time, permission and links, etc.

List Directory Contents in Linux

2. Long Listing of Files in Linux

The -l command option lets you print out detailed information about the directory contents in a columnar format that includes size, modified date and time, file or directory name and owner of the file, and its permission.

Читайте также:  Linux create object file

Long Listinig of Files in Linux

Starting from the far left, we have:

  • 1st column – File/directory permissions.
  • 2nd column – Number of links.
  • 3rd column – Name of the owner.
  • 4th column – Name of the group that the file belongs to.
  • 5th column – File size in bytes.
  • 6th column to 8th column – Last modification date.
  • 9th column – File / Directory name.

3. List Hidden Files and Directories

Hidden files are special files that store user settings and configuration files, which are used by running programs and services for reading and storing information.

For example. the .bashrc file is a script that contains user settings and configurations of the currently logged-in user, which include command aliases, shell history, the coloring of the terminal font, etc.

The .bash_logout file is executed when you log out of your bash sessions. It’s mainly used for cleanup purposes i.e. carrying out any operations that need to be performed once you exit the bash shell.

To list hidden files, pass the -a option as shown, which displays both hidden files and directories.

List Hidden Files on Linux

4. List All Files in Linux

As you have noticed the -a option not only lists hidden files but all the files and directories. For better viewing, you can use the -la option

List All Files in Linux

5. Display File Size in a Human-readable Format

To present the output in a better format, add the -h flag to print the file size in a human-readable format. From the output, the file size is displayed in Kilobytes, Megabytes, and Gigabytes. By all means, this looks more presentable.

Linux ls Command File Size Formatting

6. Distinguish Directories and Files in Linux

When running the ls command, it’s not always easy to make a clear distinction between files and directories. The -F option adds a forward slash (/) to directories, making it easier for them to stand out from the rest of the files.

Distinguish Directories and Files in Linux

7. Sorting Files in Reverse Order

By default, the ls command sorts files and directories alphabetically (From A – Z). You can opt to sort the directory contents in reverse order using the -r option.

Sort Files in Reverse Order in Linux

In addition, you can sort the file extensions alphabetically using the -X flag.

8. List Files Recursively in Linux

The -R flag lists files recursively. First, the command lists all the files and directories in your current directory, then proceeds to display files contained in individual directories and subdirectories.

In the following example, the files in individual directories have been listed as well.

List Files Recursively in Linux

9. Sort Files By Modification Time in Linux

The ls -ltr command shows the files in the long listing format in reverse sorted by modification time, which means it will display detailed information about each file or directory in reverse order based on their last modified date/time stamp.

Sort Files By Modification Time in Linux

10. Sort Files By Newest to Oldest in Linux

You can sort files by time and date using the -t option, which sorts the files in order starting from the newest to the oldest.

Sort Files By Newest in Linux

11. Sort Files by File Size in Linux

With a combination of -lS option, it will displays file size in descending order (biggest to smallest in size).

List Files By Size in Linux

12. List File Inode Number in Linux

You can display the files and directories’ inode numbers using the -i option as shown.

Print File Inode Number in Linux

13. List Files and Directories Separated by Commas

The -m flag lists the directory contents one after the other separated by a comma.

With the -Q flag, all the directory contents are enclosed by double quotation marks as shown.

List Files Separated by Commas in Linux

14. Omit Group Ownership in a Long-List Format

When used with the -l command option, the ls command prints both user and group ownership of the file. You can opt to omit the group column by passing the -g option.

Читайте также:  Rdesktop linux как пользоваться

List Files Without Group Owner in Linux

15. List Specific File Types or Extensions

To list specific file types or extensions, use the wildcard notation (*) followed by the file extension.

For example, to display all files with a .jpg extension, run the command:

Similarly, to list all PDF files, run the command:

List Files By Extension in Linux

16. List the UID and GID of Files

To display the UID and GID of files and directories, use the -n option as shown.

Print UID and GID of Files

17. Check ls Command Version

If you are a little curious and want to check the version of the ls command, you can do so as follows:

From the output, you can see that we are running ls version 9.1.

Check ls Command Version

18. Show ls Command Help Page

The ls program provides a wealth of command-line options. What we have covered are just some of the commonly used ones. For a comprehensive list of all the command options, run the following command:

View ls Command Help

Optionally, you can visit the man pages by running:

ls Command Manual

19. List Directory Information in Linux

With the ls -l command list files under directory /tmp. Wherein with -ld options, it will display information of the /tmp directory.

Print Directory Info in Linux

20. Create ls Command Aliase

We have made an alias for the ls command when we execute the ls command it will take the -l option by default and display a long listing as mentioned earlier.

To view a number of aliases available in your system, use the below alias command and the same can be unalias as shown below example.

To remove an alias previously defined, just use the unalias command.

Create ls Command Alias

In this guide, we have demonstrated how to use the ls command to view the contents of a folder or directory. In addition, we went a step further and explored command options that can be used with the ls command in Linux.

In our next article, we’ll cover more advanced ls commands with their examples. Also, I suggest you go through some interview questions on the ls command, and also if we’ve missed anything in the list, please update us via the comment section.

Источник

How to List Only Directories in Linux

Listing the contents of a directory is easy. But what if you want to list only the directories, not files and links?

By default, it lists all the contents, be it a file or a directory or a link or a named pipe.

But what if you want to list only the directories? How do you do that?

Like anything in Linux, there are several ways to accomplish the same task. Listing only the directories is no different:

  • ls -d */
  • ls -l | grep ‘^d’
  • find . -maxdepth 1 -type d
  • echo */
  • tree -d -L 1

Don’t worry. I’ll explain things in detail. Here’s the content of the directory I am going to use in the examples here:

Listing the content of a directory in Linux

Use ls command to list directories only

It is always good to do it with the familiar ls command because this is the command you use for displaying the content of a directory.

To list only the subdirectories, use the -d option with ls command like this:

Here’s the output it shows:

[[email protected] Documents]$ ls -d */ another_dir/ my_dir/ 

Why */ ? Because without it, ls -d will only return the directory name. The -d option list directories not its contents (which includes file, directories etc).

The */ is a pattern. With * , you list all the content (including contents of the subdirectories) and the / restricts the pattern to directories.

This picture depicts the difference pretty well.

List only directories in Linux

You may combine it with the long listing option -l and most other options:

[[email protected] Documents]$ ls -ld */ drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 another_dir/ drwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 my_dir/

If you do not want the trailing slash (/) at the end of the directory names, you can use the cut command to cut it out:

[[email protected] Documents]$ ls -ld */ | cut -f1 -d'/' drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 another_dir drwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 my_dir 

List only subdirectories in a specific directory

The above command works in the current directory. What if you are not in the same directory?

Читайте также:  Стандартные шрифты windows linux

In this situation, you can use */ at the end of the path of the directory with ls -d :

Here’s an example where I move out of the Documents directory and then list only the directories inside Documents directory:

[[email protected] ~]$ ls -ld Documents/*/ drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 Documents/another_dir/ drwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 Documents/my_dir/

Did you notice that it doesn’t list the hidden directory? That’s one shortcoming of this method. You may use ls -d .*/ to display hidden directories, but it only displays hidden directories.

Use combination of ls and grep command

If you long list the contents, you can identify the directories because start with d .

You can use grep to filter the contents that start with d:

But this gives you a lot more fields than just the directory names:

[[email protected] Documents]$ ls -l | grep '^d' drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 another_dir drwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 my_dir 

Use find command to list only directories

Here’s how to use the find command to list only the subdirectories:

find directory_path -maxdepth 1 -type d

I hope you are familiar with the find command. I’ll explain it nonetheless.

With type d , you ask the find command to only look for directories.

With maxdepth 1 you ask the find command to keep the search at the current level only (and not go inside the subdirectories).

[[email protected] Documents]$ find . -maxdepth 1 -type d . ./my_dir ./another_dir ./.my_hidden_dir 

List sudirectories only with find command in Linux

As you can see in the output above, it also shows the hidden directory.

Use tree command to list only directories

If your aim is to list only the directories, you may also use the tree command.

By default, the tree command gives you the complete directory structure. You can modify it to show only directories and only at the current level.

  • d — look for directories only
  • a — look for hidden files and directories as well
  • i — remove the tree structure from the display
  • L 1 — don’t go into the subdirectories
[email protected] Documents]$ tree -dai -L 1 . another_dir my_dir .my_hidden_dir 3 directories 

Using tree command to list only subdirectories in Linux

Using echo command for listing directories

The unlikely candidate? You’ll be surprised to know that echo command in Linux can also be used for displaying the contents of a directory. Try using echo * and see for yourself.

Similar to the ls command, you can also use the */ pattern to list only the directories in the current working directory.

Here’s the output which is identical to what you got with the ls -d command:

Using echo command to list directories only in Linux command line

There could be more ways for listing only the directories, not files. In fact, the methods discussed here may have some ifs and buts based on what you are looking for.

If your aim is to just display the directories, most of the commands I discussed would work. If you want something more specific like only getting the directories name with slash etc, you’ll have to do some formatting on your own.

I hope you find this Linux tip helpful. Questions and suggestions are always welcome.

Источник

Оцените статью
Adblock
detector