How to exclude multiple file types?

0143

To exclude multiple file types when using the find command in Linux, you can combine the negation operator ! with the -name option for each file type you want to exclude. You can use the -o (or) operator to specify multiple conditions.

Basic Syntax

The general syntax to exclude multiple file types is:

find [path] ! -name "*.extension1" ! -name "*.extension2" ...

Examples

  1. Excluding Specific File Extensions

If you want to find all files in a directory but exclude files with specific extensions (e.g., .txt and .jpg), you can do the following:

find . ! -name "*.txt" ! -name "*.jpg"

This command will list all files and directories in the current directory, excluding any files that end with .txt and .jpg.

  1. Using Parentheses for Clarity

To make the command clearer, especially when combining multiple conditions, you can use parentheses. Note that you need to escape the parentheses with a backslash (\) to prevent the shell from interpreting them:

find . \( ! -name "*.txt" -o ! -name "*.jpg" \)

This command achieves the same result as the previous example but is structured to show that you are excluding multiple file types.

  1. Excluding Multiple File Types with Other Criteria

You can also combine exclusions with other search criteria. For example, to find all files except .log and .tmp files that are larger than 1MB:

find . -type f ! -name "*.log" ! -name "*.tmp" -size +1M

Conclusion

Using the ! operator along with the -name option allows you to effectively exclude multiple file types in your find command. This is useful for narrowing down your search results to focus on the files that matter to you. If you're interested in further practice, consider exploring labs focused on file management and command-line utilities.

0 Comments

no data
Be the first to share your comment!