---
title: "GNU Find"
source: "https://docs.nexcess.com/hosting/server-administration/linux/gnu-find/"
description: "Master GNU `find` to locate files on your server. Search by name, type, owner, perms, & mod time. Essential for WordPress/cPanel site mgmt."
vertical: "Hosting"
date: "2025-05-29"
last_modified: "2026-07-20"
---

# GNU Find

The GNU `find` command is a powerful tool for locating files and directories within your server’s file system. If you’re managing a website, knowing how to use `find` can be incredibly helpful for various tasks, from locating specific configuration files to identifying recently modified content. This guide will walk you through the basic syntax and some common use cases to get you started.

## Basic syntax

The basic structure of the `find` command is as follows:

```
find [path] [expression]
```

- **\[path\]:** This specifies the directory where `find` will start its search. For example, `.` represents the current directory, `/home/your_cpanel_user/public_html/` would be your website’s document root.
- **\[expression\]:** This is where you define the criteria for your search, such as the name of the file, its type, or its permissions.

You’ll typically run these commands via [SSH (Secure Shell) access](https://docs.nexcess.com/hosting/server-administration/linux/what-is-secure-shell-ssh/).

The output of the command will be a list of files that match the requested expression(s).

## Common use cases and options

Let’s explore some of the most frequently used options with the `find` command.

### Finding files by name (-name and -iname)

One of the most common tasks is searching for a file by its name. The `-name` option performs a case-sensitive search, while `-iname` performs a case-insensitive search.

**Example (case-sensitive):** Find the main WordPress configuration file.

```
find /home/your_cpanel_user/public_html/ -name "wp-config.php"
```

**Example (case-insensitive):** Find any file named “readme” regardless of capitalization within your plugins directory.

```
find /home/your_cpanel_user/public_html/wp-content/plugins/ -iname "readme.txt"
```

You can also use wildcards. For instance, to find all PHP files:

```
find /home/your_cpanel_user/public_html/ -name "*.php"
```

### Finding files by type (-type)

The `-type` option allows you to specify the kind of file you’re looking for.

#### Finding regular files (-type f)

This option searches for regular files (not directories or links).

**Example:** Find all regular files named `.htaccess` within the document root.

```
find /home/your_cpanel_user/public_html/ -type f -name ".htaccess"
```

#### Finding directories (-type d)

This option searches for directories.

**Example:** Find all directories named “uploads” within your WordPress content directory.

```
find /home/your_cpanel_user/public_html/wp-content/ -type d -name "uploads"
```

#### Finding symbolic links (-type l)

Symbolic links (symlinks) are like shortcuts to other files or directories. You can find them using `-type l`.

**Example:** Find all symbolic links within the current directory.

```
find . -type l
```

### Finding files by owner (-user)

The `-user` option helps you locate files owned by a specific user. On a cPanel server, your files are typically owned by your cPanel username.

**Example:** Find all files in `/tmp` owned by the cPanel user “myuser”.

```
find /tmp -user myuser
```

### Finding files by permissions (-perm)

You can search for files based on their permission settings using the `-perm` option. Permissions are often represented in octal (e.g., 644, 755) or symbolic notation.

**Example:** Find all files in your WordPress directory that have permissions set to 777 (which is generally insecure and should be investigated).

```
find /home/your_cpanel_user/public_html/ -perm 777
```

**Example:** Find all directories with permissions of 755.

```
find /home/your_cpanel_user/public_html/ -type d -perm 755
```

### Finding files by modification time (-mtime)

The `-mtime` option allows you to find files based on when their content was last modified. The time is measured in 24-hour periods (days).

- `-mtime n`: Files modified exactly `n` days ago.
- `-mtime +n`: Files modified more than `n` days ago.
- `-mtime -n`: Files modified less than `n` days ago (i.e., within the last `n` days).

**Example:** Find all PHP files in your WordPress themes directory modified in the last 7 days.

```
find /home/your_cpanel_user/public_html/wp-content/themes/ -name "*.php" -mtime -7
```

This is very useful for identifying recently changed files, especially if you are looking for recent updates or troubleshooting an issue that started recently.

## Combining options

The true power of `find` comes from combining these options to create highly specific searches. You can chain multiple expressions together, and `find` will locate items that match all criteria.

**Example:** Find all regular files (`-type f`) within the `wp-content` directory, owned by “your\_cpanel\_user” (`-user your_cpanel_user`), that end with `.js` (`-name "*.js"`) and were modified in the last 3 days (`-mtime -3`).

```
find /home/your_cpanel_user/public_html/wp-content/ -type f -user your_cpanel_user -name "*.js" -mtime -3
```

By mastering these basic `find` command options, you’ll be better equipped to manage your WordPress installation, troubleshoot issues, and understand the layout of your files on your cPanel server.
