Linux Find command detailed

Source: Internet
Author: User
Tags print print svn root access

use the Find command to delete all VSSVER2.SCC files under Linux

Delete all VSSVER2.SCC files

This is the purpose of my search for the Linux find command.

1) Find/-name ' VSSVER2.SCC ' | Xargs rm-rf #先 (Recursive) Find the current path contains VSSVER2.SCC files, and then kill each other by Xargs

# (processing is done one after the other, not a ' delete ' to delete a bar and then continue to delete ') find can also add-type D and other search directories

2) Find/-iname ' VSSVER2.SCC '-exec rm-rf {} \; #先 (recursive) found. File containing VSSVER2.SCC in the current path, then kill

-iname filename #同-name, difference-I ignores case find/*vssver2.scc*-exec rm-rf {} \;

——————————————————–

Examples of find common usages in Linux

Find Path-option [-print] [-exec-ok command] {} \;

#-print output of the found file to standard output

#-exec command {} \; -the command operation of the file to be traced, {} and \; There is a space between {} and {} Indicates the result of find, and the last backslash \ and semicolon; Indicates the end of the command?

#-ok and-exec are the same, except to consult the user before operation

#find determine the path and expression according to the following rules (command option parameter-option), on the command column, the first-(),! The previous section is path, followed by expression. If path is an empty string, use the current path, and if expression is an empty string, use-print as the default expression.

====================================================

-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 #按文件访问时间来查找文件,-n means n days or less, +n means 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旧的文件

-mount #查文件时不跨越文件系统mount点

-follow #如果遇到符号链接文件, just follow the file that the link refers to

-cpio #对匹配的文件使用cpio命令, back them up to tape devices

-prune #忽略某个目录

==================== instance ================================

Delete all. SVN directories

That's what I was looking for to find the Linux find command.

1) Find. -type d-name '. SVN ' | Xargs rm-rf #先 (Recursive) Find the file directory under the current path that contains. SVN, and then kill each one by Xargs.

# (processing is done one by one, not by deleting a clause and then continuing to delete it)

2) Find. -type d-iname '. SVN '-exec rm-rf {} \; #先 (recursive) found. The current path contains the. svn file directory, then kill

-iname filename #同-name, difference-I ignores case

——————————————————–

The following command small2 most of the verification, we carefully refer to the use of:)

After all, copy and paste, some commands repeat or use repetition, as the above study review below:)

$find ~-name ' *.txt '-print #在 $HOME. txt file and display

$find. -name ' *.txt '-print

$find. -name ' [a-z]* '-pri26nbsp; #对匹配的文件使用cpio命令, back them up to tape devices

-prune #忽略某个目录

$find. -name ' [a-z]* '-print #查以大写字母开头的文件

$find/etc-name ' host* '-print #查以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 Print directory structure

$find. ! -type d-print Printing non-catalog files

Find/usr/include-name ' *.h '-exec grep af_inef6 {} \;

#因grep无法递归搜索子目录, so it can be combined with find. Find a string in the. h file in all/usr/include subdirectories Af_inef6

#small2: Are u kiding me?

$find. -type L-print

$find. -size +1000000c-print #查长度大于1Mb的文件

$find. -size 100c-print # Check for files of length 100c

$find. -size +10-print #查长度超过期作废10块的文件 (1 block = 512 bytes)

$CD/

$find etc Home Apps-depth-print | Cpio-ivcdc65536-o/dev/rmt0

$find/etc-name ' passwd* '-exec grep ' cnscn ' {} \; #看是否存在cnscn用户

#small2: This has to have root access.

$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 to find 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 # finds files accessed in the last 10 minutes of the system

Find/-atime-2 # finds files accessed in the last 48 hours of the system

Find/-empty # finds files or folders that are empty in the system

Find/-group Cat # finds files that belong to Groupcat in the system

Find/-mmin-5 # finds 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 {} \;

=================================================

#查询当天修改过的文件

[Email protected]~$ Find/-mtime-1-type f-exec ls-l {} \;

=================================================

#查询文件并询问是否要显示

[Email protected]~/tmp$ Find/-mtime-1-type f-ok ls-l {} \;

< LS .... /.find.swo >? Yes

-rw-r--r--1 zgf zgf 20480 2010-06-30 23:48./.find.swo

< LS .... /find >? Y

-rw-r--r--1 zgf zgf 10089 2010-06-30 23:42./find

< LS .... /tmp.txt >? Y

-rw-r--r--1 zgf zgf 2010-06-30 15:43./tmp.txt

< LS .... /.find.swp >? Y

-RW-------1 zgf zgf 20480 2010-06-30 23:42./.find.swp

[Email protected]~/tmp$

=================================================

Query and give it to awk to handle it.

[Email protected]~$ who | awk ' {print $1″\t ' $ '

CNSCN pts/0

=================================================

Awk-grep-sed

[Email protected]~$ df-k | awk ' {print '} ' | Grep-v ' None ' | sed s '/\/dev\///g '

File system

Sda2

Sda1

[Email protected]~$ 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 filenames containing ' 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 {} \;

One way to #这个就是上面提到的删除. SVN directory

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 *.txt-exec cp {}/home/zgf/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

Second, the use of the Linux find command

1. Basic usage:

Find/-name file name

Find ver1.d ver2.d-name ' *.c '-print finding ver1.d,ver2.d *.c files and printing

Find. -type D-print from the current directory, finds only the directory, and when found, prints the path name. Can be used to print the directory structure.

2. No Error Lookup:

Find/-name Access_log 2 >/dev/null

3. Search by Size:

Find/-size 1500c (look for a 1,500-byte file, c for bytes)

Find/-size +1500c (finds files larger than 1,500 bytes, + represents greater than)

Find/-size +1500c (finds files less than 1,500 bytes in size-Indicates less than)

4. By Time:

Find/-amin n last N minutes

Find/-atime n last n days

Find/-cmin n last N minutes change state

Find/-ctime N last n days change state

5. Other:

Find/-empty blank file, blank folder, folder without subdirectories

Find/-false files that are always wrong in the lookup system

Find/-fstype Type Locate the file that exists in the specified file system, such as type ext2

Find/-gid n set of files with ID n

Find/-group gname group file named Gname

Find/-depth N first search for file contents in a certain level of specified directory

Find/-maxdepth levels in a hierarchical directory in descending order

6. Logic

-and conditions and-or conditions or

7. Finding strings

Find. -name ' *.html '-exec grep ' mailto: ' {} \;

From:http://blog.zol.com.cn/751/article_750102.html

Linux Find command detailed

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.