Examples of common usages of Find in Linux find Path-option [-print] [-exec-ok command] {} \;
The parameters of the Find command;
The directory path that the Pathname:find command looks for. For example, use. To represent the current directory, and/to represent the system root directory.
The-print:find command outputs the matched file to standard output.
The-exec:find command executes the shell command given by the parameter to the matching file. The corresponding command is in the form of ' command ' {} \;, note the space between {} and \;
-ok: The same as-exec, except that the shell command given by the parameter is executed in a more secure mode, prompting the user to determine whether to execute before executing each command.
#-print output of the found file to standard output
#-exec command {} \; -the command operation for the file to be found, with spaces between {} and \;
#-ok and-exec are the same, except to consult the user for example before the operation: find. -name. SVN | Xargs RM-RF
====================================================
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group GroupName #按组来查找
-mtime-n +n #按文件更改时间来查找文件,-n means n days or less, +n means n days ago
-atime-n +n #按文件访问时间来查GIN: 0px ">
-ctime-n +n #按文件创建时间来查找文件,-n means n days or less, +n means n days ago
-nogroup #查无有效属组的文件 that the genus of the file does not exist in the/etc/groups
-nouser #查无有效属主的文件, that is, the owner of the file does not exist in the/etc/passwd
-newer F1!f2 Find file,-n means n days or less, +n refers to n days ago
-ctime-n +n #按文件创建时间来查找文件,-n means n days or less, +n means n days ago
-nogroup #查无有效属组的文件 that the genus of the file does not exist in the/etc/groups
-nouser #查无有效属主的文件, that is, the owner of the file does not exist in the/etc/passwd
-newer F1!F2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备, directories, character devices, pipelines, symbolic links, plain files
-size N[c] #查长度为n块 [or N-byte] files
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备, directories, character devices, pipelines, symbolic links, plain files
-size N[c] #查长度为n块 [or N-byte] files
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件, these file system types are usually found in the/etc/fstab
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件, just follow the file that the link refers to
-cpio%; #查位于某一类型文件系统中的文件, these file system types are usually found in/etc/fstab
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件, just follow the file that the link refers to
-cpio #对匹配的文件使用cpio命令, back them up to tape devices
-prune #忽略某个目录
=====================================================
$find ~ -name "*. TXT " -print #在 $HOME. txt file and displays
$find . -name "*.txt" -print
$find . -name "[a-z]*" - print #查以大写字母开头的文件
$find /etc -name "host*" -print # Check for files beginning with host
$find . -name "[A-z][a-z][0–9][0–9].txt" - print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm-007 -exec ls-l {} \; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print &NBSP
$find . -type l -print
$find . -size +1000000c -print #查长度大于1Mb的文件
$find . -size 100c -print # Check files with length 100c
$find . - size +10 -print #查长度超过期作废10块的文件 (1 blocks = 512 bytes)
$CD/
$find etc Home Apps-depth-print | Cpio-ivcdc65536-o/dev/rmt0
$find/etc-name "passwd*"-exec grep "Cnscn" {} \; #看是否存在cnscn用户
$find. -name "yao*" | Xargs file
$find. -name "yao*" | Xargs echo "" >/tmp/core.log
$find. -name "yao*" | Xargs chmod o-w
======================================================
Find-name april* Find files starting with April in the current directory
find-name april* Fprint file finds files starting with April in the current directory and outputs the results
find-name ap*-o-name may* Find files that start with an AP or May
find/mnt-name tom.txt-ftype vfat to find files with the name tom.txt and file system type VFAT under/mnt
find/mnt-name t.txt!-ftype vfat under/mnt Look for files with the name Tom.txt and file system type not VFAT
find/tmp-name wa*-type L Find a file with a type of symbolic link at/tmp that begins with the name WA
find/home-mtime-2 in/home search for files that have changed in the last two days
find/home-atime-1 checked files accessed within 1 days
Find/home-mmin +60 The files that were changed 60 minutes ago at /home
find/home-amin +30 Check the files that were accessed last 30 minutes ago
find/home-newer tmp.txt in/home check update time than tmp.txt files or directories
find/home-anewer tmp.txt A file or directory that is accessed more than tmp.txt near/ home
find/home-used-2 lists files or directories that have been accessed within 2nd after the file or directory has been altered
find/home-user CNSCN lists files or directories in the/home directory that belong to the user Cnscn
find/home-uid +501 lists files or directories with a user's ID greater than 501 in the/home directory
Find/home-group CNSCN list files or directories in/home with group CNSCN
Find/home-gid 501 lists files or directories with a group ID of 501 in/ home
find/home-nouser lists files or directories in/home that are not local users
find/home-nogroup lists files or directories in/home that are not part of a local group
Find/home-name tmp.txt-maxdepth 4 lists the Tmp.txt in/home with a depth of up to 3 layers
Find/home-name tmp.txt-mindepth 3, starting from the 2nd floor .
Find/home-empty Finding a file size of 0 or an empty directory
find/home-size +512k files larger than 512k
find/home-size-512k files less than 512k
find/home-links +2 Check hard connections more than 2 files or directories
find/home-perm 0700 Check the file or directory with permission 700
find/tmp-name tmp.txt-exec Cat {} \;
find/tmp-name tmp.txt-ok rm {} \;
find / -amin -10 # Find files accessed in the last 10 minutes of the system
find / -atime -2 # Find files accessed in the last 48 hours of the system
find / -empty # Find files or folders that are empty in the system
find / -group cat # Find files that belong to Groupcat in the system
find / -mmin -5 # Find files that have been modified in the last 5 minutes of the system
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
check all the normal files in the current directory
# Find.-type f-exec ls-l {} \;
-rw-r–r–1 root root 34928 2003-02-25./conf/httpd.conf
-rw-r–r–1 root root 12959 2003-02-25./conf/magic
-rw-r–r–1 root root 2003-02-25./conf.d/readme
Check all the normal files in the current directory and use the LS-L command in the-e x E C option to list them
=================================================
In the/L o G S directory, look for files that change time before 5th and delete them:
$ find Logs-type f-mtime +5-exec-ok rm {} \;
=================================================
Query for files modified on the day
[[email protected] class]# Find/-mtime-1-type f-exec ls-l {} \;
=================================================
Query the file and ask if you want to display
[[email protected] class]# Find/-mtime-1-type f-ok ls-l {} \;
< LS .... /classdb.inc.php >? Y
-rw-r–r–1 cnscn cnscn 13709 January 12:22./classdb.inc.php
[[email protected] class]# Find/-mtime-1-type f-ok ls-l {} \;
< LS .... /classdb.inc.php >? N
[Email protected] class]#
=================================================
Query and give it to awk to handle it.
[email protected] class]# who | awk ' {print ' \ t '
CNSCN pts/0
=================================================
Awk-grep-sed
[Email protected] class]# Df-k | awk ' {print '} ' | Grep-v ' None ' | sed S "/\/dev\///g"
File system
Sda2
Sda1
[Email protected] class]# Df-k | awk ' {print '} ' | Grep-v ' None '
File system
/dev/sda2
/dev/sda1
1) Find all the *.h in/tmp and look for "syscall_vector" in these files, and finally print out all the filenames that contain "syscall_vector"
A) find/tmp-name "*.h" | Xargs-n50 grep syscall_vector
B) grep syscall_vector/tmp/*.h | Cut-d ': '-f1| Uniq > FileName
C) find/tmp-name "*.h"-exec grep "Syscall_vector" {} \; -print
2) Find/-name filename-exec rm-rf {} \;
Find/-name filename-ok rm-rf {} \;
3) For example, to find files larger than 3M on the disk:
Find. -size +3000k-exec ls-ld {};
4) Copy the find out to another place.
Find *.c-exec cp ' {} '/tmp '; '
If you have special files, you can use Cpio, or you can use this syntax:
Find Dir-name Filename-print | CPIO-PDV Newdir
6) Look for files changed at 2004-11-30 16:36:37
# a= ' Find/-name ' *php ' | Ls-l–full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"
This content is excerpted from the blog Park Wanqi, thanks for sharing
Linux Find usage Example (excerpt)