How to find files in Linux?

Actually, there are two commands,find and locate, which help us find files that meet to a specific pattern. But,it’s important for us to keep in mind that there are several differences between find and locate which make them have different strengths in different aspects.

The find searches recursively in real time, is slower but always up-to-date and provides more options (-name, -type, -size, …) than locate.

The locate searches by using a previously built database which is automatically updated on a nightly basis. To update the database manually, change to a root user andtype the command updatedb, which would take a great amount of time according to the size of the system. Thus, it locates files much faster than find, but using an ‘older’ database may cause user failure to locate files which could be removed or not updated into the database.

# locate passwd

Since locate doesn’t search in real time and is rarely used in reality, this essay would mainly focus on the find command and only the options frequently used will be covered.

The format of the find command is:

# find [path] [pattern] [action]

Path: Specify the working directory whose default working directory is the current one the find command starts in.

Pattern: Specify the search criterion. Without specification, it will recursively return all files under the working directory by default.

Action: Specify the action that will perform on the files found.

1. Standard Pattern

-name ‘FILENAME’: Match the files whose name is exactly the same as the FILENAME which can include the metacharacters (‘*’, ‘?’, ‘[]’) which make it more flexible.

# find /etc -name 'passwd*'

-iname ‘FILENAME’: Like –name, but the match is case insensitive.

-regex PATTERN: File name matches regular expression pattern.

-user USERNAME: Search by user uname.

# find /tmp -user user1

-group GROUPNAME: Search by group gname.

-uid UID: Search by numeric user ID.

# find /tmp -uid 2003

-gid GID: Search by numeric group ID.

-nouser: Files that no user corresponds to will be returned.

-nogroup: Files that no group corresponds to will be returned.

-type [f|d|b|c|l|p|s]: Search by the type of files.

    f    regular file

    d    directory

    b    block special

    c    character special

    l    symbolic link

    p    named pipe

    s    socket

# find /tmp -type f

-size [+|-]#[kMG]: Search by the size of files. The defaultsize unit is byte.

    +    greater than the specified criteria of size.

    -    less than the specifiedcriteria of size.

    k    for kilobytes

    M    for megabytes

    G    for gigabytes

# find /etc -size -1M

-[mtime|ctime|atime][+|-]#: The default time unit is day.

    mtime    file’s data was last modified #*24 hours ago.

    ctime    file’s status was last changed #*24hours ago.

    atime    file was last accessed #*24 hours ago.

# find /tmp -atime +30

-[mmin|cmin|amin][+|-]#: The default time unit is minute.

    mmin    file’s data was last modified #minutes ago.

    cmin    file’s status was last changed # minutes ago.

    amin    file was last accessed # minutes ago.

# find /tmp -amin -5

-perm MODE: File’s permission bits are exactly the same as MODE (octal or symbolic).

# find . -perm 644

    -MODE: All of the permission bits MODE are set for the file.

# find . -perm -664

    /MODE: Any of the permission bits MODE are set for the file.

# find . -perm /222

2. Logical operation

-a: and

# find /tmp -nouser -a -type d -ls

-o: or

# find ./ -not \(-user user1 -o -user user2 \)

-not: not

# find /tmp -not -type d


3. Action

-print: print the full file name on the standard output.

-ls: list current file in ls –dils format on standard output.

-exec COMMAND {} \;: execute COMMAND. {} represents the current file name.

# find ./ -perm -006 -exec chmod 0-w {} \;

-ok COMMAND {} \;: like –exec but ask the user first.

# find ./ -type d -ok chmod +x {} \;


Reference:

[1] Man7.org, (2015). find(1) - Linux manual page. [online] Available at: http://man7.org/linux/man-pages/man1/find.1.html [Accessed 14 Oct. 2015].

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,959评论 0 23
  • 把优秀变成一种习惯,欢迎来到无双漫谈。今天是我们一起进化的第104天。 Round 1 Fight CEO这个词我...
    无双漫谈阅读 594评论 0 7
  • 根本的邪恶 “人类将处于永无休止的过快发展的危险中,因为它把自己的触角伸得太远,以至于得到的将是一片虚无。亚当和夏...
    暖茶洛可可阅读 932评论 0 0
  • 如果问你:女人的一生有多长? 我相信,每一个阶段的女人都有不同的感触。 从呱呱落地的小宝宝,到洗净铅华的老人,女人...
    冷熙X阅读 278评论 0 0
  • 图片来源:pixabay.com (CC0) 34岁,在通往楼阁的途中,遇长梯高耸入云,抬眼山高路远,低头万丈深渊...
    王安迪阅读 248评论 0 0