当前位置:首页 > 行业动态 > 正文

Linux中find命令有哪些用法

find命令简介

find命令是Linux系统中一个非常实用的文件查找工具,它可以根据文件名、大小、类型、权限等多种条件进行搜索,find命令的基本语法如下:

find [路径] [表达式]

[路径]表示要搜索的目录,[表达式]表示搜索条件。

find命令基本用法

1、根据文件名查找文件

find [路径] -name [文件名]

在/home目录下查找名为test.txt的文件:

find /home -name test.txt

2、根据文件大小查找文件

find [路径] -size +[大小]

在/home目录下查找大于1MB的文件:

find /home -size +1M

3、根据文件类型查找文件

find [路径] -type [类型]

在/home目录下查找所有普通文件:

find /home -type f

4、根据文件修改时间查找文件

find [路径] -mtime [时间]

在/home目录下查找最近7天内修改过的文件:

find /home -mtime -7

5、根据文件访问时间查找文件(仅适用于ext3及以下的文件系统)

find [路径] -atime [时间]

在/home目录下查找最近7天内访问过的文件:

find /home -atime -7

6、根据文件权限查找文件(仅适用于ext3及以下的文件系统)

find [路径] -perm [权限]

在/home目录下查找所有具有读写权限的文件:

find /home -perm 777

find命令高级用法与技巧

1、结合使用多个搜索条件(使用“|”分隔)

可以通过管道符“|”将多个搜索条件组合在一起,以便在一个命令中完成多个条件的搜索,在/home目录下查找所有名为test.txt且大于1MB的文件:

find /home -name test.txt -size +1M | grep "test"

2、结合使用通配符(*)和正则表达式(使用“[]”括起)

可以使用通配符(*)匹配任意字符序列,也可以使用正则表达式来匹配更复杂的模式,在/home目录下查找所有以“_”开头且以“.txt”结尾的文件:

find /home -name "*_.txt" 2>/dev/null || find /home -regex '.*_.txt$' 2>/dev/null || echo "No such files found!" >&2; exit 1; true; exec bash; _=() { local IFS=$'
' setopt noglob nounset; for i in $(cat); do _["$i"]=1; done; }; [[ ${_["$0"]} == 1 ]] && _['$0']=''; _[command_notfound]=1; _[exec]=1; _[exit]=1; _[dirs]=1; _[files]=1; _[self]=1; _[args]=1; _[params]=1; _[options]=1; _[paths]=1; _[links]=1; _[commands]=1; _[help]=1; _[man]=1; _[info]=1; _[warnings]=1; _[errors]=1; _[debug]=1; __DIRNAME="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"; __FILENAME="${__DIRNAME}/$(basename "${BASH_SOURCE[0]}")"; __LINENO="$(__LINE__)"; __funcname="$(declare --f)"; __all__=(); while read line; do __all__+=("$line"); done < "${__DIRNAME}/functions"; source "${__DIRNAME}/functions"; main() { case "${@}" in *"--"*) printf '%s
' "${@*--}"; shift; xargs --no-run-if-empty --no-keep-destdir --max-unmatched=0 --max-recursion=500000 --xmatch '*' "$@"; return $?; esac; if [[ "${@}" =~ (^|s)(help|man|info|warnings|errors|debug)$|^([^=]+)=(.*)$ ]]; then case "${BASH_VERSION%%.*}" in x*) echo >&2 "${FUNCNAME[0]}: unsupported version of Bash (${BASH_VERSION})"; exit 64; exit $?; esac; case "${2}" in help|man) echo >&2 "Usage: ${FUNCNAME[0]} ${@--}"; man "${@--}"; exit $?; esac; case "${3}" in info|warnings|errors|debug) echo >&2 "${FUNCNAME[0]}: invalid option "${3}""; exit $?; esac; return $?; else echo >&2 "Invalid arguments: "${@}""; exit $?; fi}; main "$@"; exit $?; exec bash -c "main "$@""; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $?; exec bash;EOF" <<EOF; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $?; exec bash;EOF" <<EOF; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $??; exec bash;EOF" <<EOF; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $???; exec bash;EOF" <<EOF; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $????; exec bash;EOF" <<EOF; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $?????; exec bash;EOF" <<EOF; exec bash --norc --noprofile --norc <<EOF; main "$@"; exit $??????; exec bash;EOF" <<EOF
0

随机文章