Software & AppsOperating SystemLinux

How To Exclude Certain Files in `ls`

Ubuntu 17

In the world of Linux and Unix-like operating systems, ls is one of the most commonly used commands. It allows users to list directory contents and view information about files and directories. However, there might be instances where you want to exclude certain files from the ls output. This article will guide you through various methods on how to achieve this.

Quick Answer

To exclude certain files in ls, you can use the -I or --ignore options followed by the filename or pattern you want to exclude. For example, to exclude a file named "temp", you can use ls -1 -I temp. You can also exclude multiple files or files based on their extensions using multiple -I options or brace expansion. Another option is to use the --hide parameter followed by the filename or pattern you want to hide.

Understanding the ls Command

Before we delve into the specifics, it’s important to understand what ls does. The ls command, short for list, is used to view information about files and directories within the Linux and Unix-like file systems. By default, ls lists the names of files and directories in the current directory.

The -I and --ignore Options

To exclude certain files from the ls output, we can make use of the -I or --ignore options. These options allow you to specify a pattern that matches the files you want to exclude.

Ignoring a Single File

To ignore a single file, you can use the -I option followed by the filename. For example, if you want to exclude a file named “temp”, you can use the following command:

ls -1 -I temp

The -1 option is used to list one file per line. This is not necessary but can make the output easier to read.

The -I option is followed by the name of the file you want to exclude. In this case, “temp”.

You can achieve the same result using the --ignore option:

ls -1 --ignore=temp

Ignoring Multiple Files

To ignore multiple files, you can use multiple -I options, each followed by a filename. For example:

ls -1 -I file1 -I file2

This command will exclude both “file1” and “file2” from the output.

Ignoring Files by Extension

You can also exclude files based on their extensions. For example, to exclude all JPEG and SVG files, you can use:

ls -1 -I "*.jpg" -I "*.svg"

The asterisk (*) is a wildcard character that matches any sequence of characters. So "*.jpg" matches any file that ends with “.jpg”.

Using Brace Expansion

Bash, the default shell in many Linux distributions, supports a feature called brace expansion. This can be used to specify multiple patterns to ignore:

ls -1 --ignore={"*.jpg","*.png","*.svg"}

This command will exclude all files with the extensions “.jpg”, “.png”, and “.svg”.

Using the --hide Parameter

Another way to exclude files is by using the --hide parameter. This works similarly to the -I and --ignore options, but the syntax is slightly different:

ls -1 --hide=*.jpg

This command will hide all files with the extension “.jpg” from the output.

Conclusion

In this article, we have discussed various ways to exclude certain files from the ls command output in Linux and Unix-like systems. By using the -I or --ignore options, or the --hide parameter, you can filter out files based on their names or extensions. Remember to use quotes around patterns with wildcard characters to prevent the shell from expanding them before they are passed to ls. Happy listing!

How can I exclude multiple files with different extensions from the `ls` output?

To exclude multiple files with different extensions, you can use multiple -I options, each followed by a filename or pattern. For example, if you want to exclude files with extensions ".jpg" and ".png", you can use the command ls -1 -I "*.jpg" -I "*.png".

Can I use the `-I` or `–ignore` options to exclude directories as well?

Yes, you can use the -I or --ignore options to exclude directories from the ls output. Simply provide the directory name as the argument after the option. For example, ls -1 -I directory_name will exclude the specified directory from the output.

How can I exclude all files and directories starting with a specific prefix?

To exclude all files and directories starting with a specific prefix, you can use the wildcard character (*). For example, to exclude all files and directories starting with "temp_", you can use the command ls -1 -I "temp_*".

Is it possible to exclude files based on their size?

No, the ls command does not have a built-in option to exclude files based on their size. However, you can pipe the output of ls to other commands like find or awk to filter files based on their size before displaying the output.

Can I combine multiple exclusion patterns in a single `ls` command?

Yes, you can combine multiple exclusion patterns in a single ls command. One way to do this is by using brace expansion. For example, ls -1 --ignore={"*.jpg","*.png","*.svg"} will exclude files with the extensions ".jpg", ".png", and ".svg" from the output.

Leave a Comment

Your email address will not be published. Required fields are marked *