mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 10:42:45 +00:00 
			
		
		
		
	 98c0c5e9e6
			
		
	
	
		98c0c5e9e6
		
	
	
	
	
		
			
			The URLs of the form `help://man/<section>/<page>` link to another help page inside the help application. All previous relative page links are replaced by this new form. This doesn't change any behavior but it looks much nicer :^) Note that man doesn't handle these new links, but the previous relative links didn't work either.
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ## Name
 | |
| 
 | |
| find - recursively search for files
 | |
| 
 | |
| ## Synopsis
 | |
| 
 | |
| ```**sh
 | |
| $ find [-L] [root-paths...] [commands...]
 | |
| ```
 | |
| 
 | |
| ## Description
 | |
| 
 | |
| `find` recursively traverses the file hierarchy starting at the given root paths
 | |
| (or at the current working directory if no root paths have been specified), and
 | |
| evaluates the given commands for each found file. The commands can be used to
 | |
| both filter the set of files and to perform actions on them.
 | |
| 
 | |
| If no *action command* (`-print`, `-print0`, or `-exec`) is found among the
 | |
| specified commands, a `-print` command is implicitly appended.
 | |
| 
 | |
| ## Options
 | |
| 
 | |
| * `-L`: Follow symlinks
 | |
| 
 | |
| ## Commands
 | |
| 
 | |
| * `-type t`: Checks if the file is of the specified type, which must be one of
 | |
|   `b` (for block device), `c` (character device), `d` (directory), `l` (symbolic
 | |
|   link), `p` (FIFO), `f` (regular file), and `s` (socket).
 | |
| * `-links number`: Checks if the file has the given number of hard links.
 | |
| * `-user name`: Checks if the file is owned by the given user. Instead of a user
 | |
|   name, a numerical UID may be specified.
 | |
| * `-group name`: Checks if the file is owned by the given group. Instead of a
 | |
|   group name, a numerical GID may be specified.
 | |
| * `-size number[c]`: Checks if the file has the given size in 512-byte blocks,
 | |
|   rounded up. If the size is followed by the `c` character, checks if the file
 | |
|   has the given size in bytes.
 | |
| * `-name pattern`: Checks if the file name matches the given global-style
 | |
|   pattern (case sensitive).
 | |
| * `-iname pattern`: Checks if the file name matches the given global-style
 | |
|   pattern (case insensitive).
 | |
| * `-print`: Outputs the file path, followed by a newline. Always evaluates to
 | |
|   true.
 | |
| * `-print0`: Outputs the file path, followed by a zero byte. Always evaluates to
 | |
|   true.
 | |
| * `-exec command... ;`: Executes the given command with any arguments provided,
 | |
|   substituting the file path for any arguments specified as `{}`. The list of
 | |
|   arguments must be terminated by a semicolon. Checks if the command exits
 | |
|   successfully.
 | |
| 
 | |
| The commands can be combined to form complex expressions using the following
 | |
| operators:
 | |
| 
 | |
| * `command1 -o command2`: Logical OR.
 | |
| * `command1 -a command2`, `command1 command2`: Logical AND.
 | |
| * `( command )`: Groups commands together for operator priority purposes.
 | |
| 
 | |
| ## Examples
 | |
| 
 | |
| ```sh
 | |
| # Output a tree of paths rooted at the current directory:
 | |
| $ find
 | |
| # Output only directories:
 | |
| $ find -type d
 | |
| # Remove all sockets and any files owned by anon in /tmp:
 | |
| $ find /tmp "(" -type s -o -user anon ")" -exec rm "{}" ";"
 | |
| # Concatenate files with weird characters in their names:
 | |
| $ find -type f -print0 | xargs -0 cat
 | |
| # Find files with the word "config" in their name:
 | |
| $ find -name \*config\*
 | |
| ```
 | |
| 
 | |
| ## See also
 | |
| 
 | |
| * [`xargs`(1)](help://man/1/xargs)
 |