The simplest usage of find on linux is writing find  and on osx you should provide .

bash
find .

To search deeply within a single directory using `find`, you can use the following 
command:

bash
find . -type f -print


However, this will print the paths of all files and directories within the current 
working directory. If you want to search for specific file types or match certain 
patterns, you can modify the command as follows:

bash
find . -name "pattern" -type f -print


Here's a breakdown of the options used in this example:

* `. ` : This is the starting point for the search. The dot (`.`) represents the current 
working directory.
* `-type f` : This option specifies that only files (not directories or other types of 
entities) should be matched.
* `-name "pattern"` : This option specifies a pattern to match against file names. You 
can use globbing patterns like `*`, `?`, and `[`. If you want to search for multiple 
patterns, separate them with commas: `find . -name "pattern1,pattern2"`.
* `-print` : This option tells `find` to print the paths of matching files.

To find specific file types (e.g., only `.txt` or `.pdf` files), use the following 
syntax:

bash
find . -type f -name "*.txt"


Or, if you want to search for both `.txt` and `.pdf` files simultaneously:

bash
find . -type f -name "*.txt,*.pdf"


If you need to search within a specific directory or subdirectory, use the following 
syntax:

bash
find /path/to/directory -type f -print


Make sure to replace `/path/to/directory` with the actual path of your target directory.

To limit the search depth using `find` in Bash, you can use the `-maxdepth` option. 
Here's an example:

bash
find . -maxdepth 2 -type f -print


In this command:

* `. ` is the starting point for the search (the current working directory).
* `-maxdepth 2` specifies that the search should only go up to a depth of 2 levels. This 
means that:
 + The first level includes the files and directories directly within the starting point 
(`.`).
 + The second level includes any files or directories within those subdirectories.
* `-type f` specifies that only files (not directories or other types of entities) should 
be matched.

If you want to search for a specific file type, pattern, or match certain criteria, you 
can combine the `-maxdepth` option with other options, like this:

bash
find . -maxdepth 2 -name "*.txt" -type f -print


This command will find only `.txt` files within the first two levels of subdirectories.

To search up to a specific depth (e.g., level 3, level 4, etc.), simply replace `2` with 
the desired depth:

bash
find . -maxdepth 3 -type f -print # Search up to level 3 find . -maxdepth 4 -name "*.txt" -type f -print # Search for .txt files up to level 4


Note that you can also use `-mindepth` to specify the minimum depth of the search:

bash
find . -mindepth 2 -type f -print # Search only in subdirectories (level 2 and below)


However, when used together with `-maxdepth`, `-mindepth` will override it. Therefore, if 
you need both a maximum and minimum depth, use `--maxdepth` and `--mindepth` to ensure 
the correct order:

bash
find . --maxdepth 3 --mindepth 2 -type f -print # Search from level 2 to level 3 only


Keep in mind that if you omit both `-maxdepth` and `-mindepth`, `find` will perform a 
recursive search of the entire directory tree.