Linux 파일 쿼리 명령: 1. 조건을 충족하는 파일을 찾는 데 사용되는 찾기, "locate [매개 변수 선택] [스타일]" 구문 2. 찾기, 지정된 디렉터리에서 파일을 찾는 데 사용되는 "찾기" [OPTION ]... [검색 경로] [검색 조건] [처리 동작]".
이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터. linux에서 파일을 쿼리하기위한 두 가지 공통 명령이 있습니다. 시스템의 파일. 방법은 먼저 시스템에 있는 모든 파일의 이름과 경로를 포함하는 데이터베이스를 생성하는 것입니다. 그런 다음 검색할 때 실제로 파일 시스템에 깊이 들어가지 않고 이 데이터베이스를 쿼리하기만 하면 됩니다. 일반 배포에서는 데이터베이스 생성이 crontab에서 자동으로 실행됩니다.
1. 명령 형식:
locate [选择参数] [样式]
- 2. 명령 기능: locate 명령은 데이터베이스를 검색할 때 파일을 빠르게 찾을 수 있습니다. 찾기는 업데이트된 프로그램에 의해 업데이트됩니다. updateb는 cron 데몬에 의해 주기적으로 생성됩니다. 데이터베이스 검색 시 하드디스크 데이터 검색은 빠르지만, Locate로 찾은 파일이 최근에 생성되었거나 이름이 변경된 경우에는 찾을 수 없다는 것이 단점입니다. 기본 설정에서는 updateb가 하루에 한 번 실행됩니다. 설정을 업데이트하는 crontab. (etc/crontab)
locate는 조건을 충족하는 파일을 검색하도록 지정됩니다. 이는 데이터베이스에 파일과 디렉터리 이름을 저장합니다. 쿼리 파일을 찾으면 /var/lib/mlocate/mlocage.db를 검색하여 찾습니다. 템플릿 스타일 조건이 있는 파일 또는 디렉터리의 경우 특수 문자(예: "*" 또는 "?")를 사용하여 템플릿 스타일을 지정할 수 있습니다. 찾기는 kcpa인 모든 시작 문자열과 kcpartner와 같이 ner로 끝나는 파일 또는 디렉터리를 찾습니다. 디렉터리 이름이 kcpa_ner인 경우 하위 디렉터리를 포함하여 디렉터리의 모든 파일이 나열됩니다.
locate 명령어는 파일 찾기 검색 기능과 비슷한 기능을 가지고 있지만, Loacte 명령어는 먼저 업데이트 프로그램을 통해 하드디스크에 있는 모든 파일과 디렉터리 데이터에 대한 인덱스 데이터베이스를 생성하고, loacte 실행 시 해당 인덱스를 직접 검색합니다. 쿼리 속도가 빨라집니다. 인덱스 데이터베이스는 일반적으로 운영 체제에서 관리되지만, 업데이트를 직접 실행하여 시스템이 인덱스 데이터베이스를 즉시 수정하도록 할 수도 있습니다.
3. 명령 매개변수:
-e는 검색 범위에서 제외됩니다.
-1이면 1입니다. 그런 다음 안전 모드를 시작하십시오. 안전 모드에서 사용자는 보기를 허용하지 않는 권한이 있는 파일을 볼 수 없습니다. 파일의 권한 정보를 얻으려면 찾기가 실제 파일 시스템으로 이동해야 하기 때문에 속도가 느려지기 시작합니다.
-f는 특정 파일 시스템을 제외합니다. 예를 들어 데이터베이스의 proc 파일 시스템에 파일을 부당하게 배치하지 않습니다.
-q 자동 모드에서는 오류 메시지가 표시되지 않습니다.
-n은 최대 n개의 출력을 표시합니다.
- -r은 정규식을 사용하여 조건을 검색합니다.
- -o 데이터베이스 이름을 지정합니다.
- -d 데이터베이스 경로 지정
- -h 보조 정보 표시
- -V 프로그램 버전 정보 표시
- 4. 사용 예: 예 1: etc 디렉토리 검색 sh
[root@CentOS7 ~#]locate /etc/sh /etc/shadow /etc/shadow- /etc/shells [root@centos7 ~#]locate -r "/etc/\sh " # 正则,锚定词首 /etc/shadow /etc/shadow- /etc/shells [root@centos7 ~#]
로 시작하는 모든 파일을 다운로드하세요. 예 2: 대소문자 무시
[root@centos7 ~#]locate -i ~/d /root/Desktop/root/Documents/root/Downloads /root/d1 /root/dd /var/lib/pcp/pmdas/root/domain.h [root@centos7 ~#]
예 3: 데이터베이스 업데이트[root@centos7 ~#]locate ~/a /root/anaconda-ks.cfg [root@centos7 ~#]updatedb [root@centos7 ~#]locate ~/a /root/a.sh /root/anaconda-ks.cfg [root@centos7 ~#]
find- 1. 주요 목적: find 명령은 실시간 검색 도구입니다. , 지정된 경로를 탐색하여 파일 검색을 완료합니다. 이 명령을 사용할 때 매개변수를 선택하지 않으면 현재 디렉터리에서 하위 디렉터리와 파일이 검색되어 표시됩니다. 또한 매개변수 앞의 모든 문자열은 검색할 디렉터리 이름입니다. 실시간 순회 검색이기 때문에 find는 정확한 실시간 검색, 느린 속도는 사용자에게 읽기 및 실행 권한이 있는 디렉토리만 검색할 수 있다는 특징을 가지고 있습니다.
2.find 구문:
<br/>
검색 경로: 특정 대상 경로를 지정합니다. 기본값은 현재 디렉터리입니다
검색 조건: 지정된 검색 기준(파일 이름, 크기, 유형 등) 기본적으로는 지정된 경로에서 모든 파일을 찾는 것입니다처리 작업: 조건에 맞는 파일에 대해 작업하고 기본적으로 화면에 출력합니다
3.
파일 이름과 inode에 따라 검색
- 소유자 및 그룹으로 검색
- 파일 형식으로 검색
- 논리적 조합 조건에 따라 검색
타임스탬프 기준 검색
-
- 4. 처리 작업:
- -인쇄: 기본 작업, 화면에 표시됨
-ls: 类似于对查找到的文件执行 ls -l 命令
-delete: 删除查找到的文件
-fls file: 查找到的所有长格式的信息保存至指定文件中
-ok COMMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,且都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令;
{}: 用于引用查找至的文件名称自身
find 传递查找到的文件至后面指定的命令时,查找到所有符号条件的文件一次性传递给后面的命令
有些命令不能接受过多的参数,此时命令执行可能会失败,用 xargs 来规避此问题
find |xargs COMMAND
5.常用参数:
文件名和inode类:
-name "文件名称":支持使用glob, *, ?, [], [^]
-iname "文件名称":不区分字母大小写
-inum n:按inode号查找
-somefile name:相同的inode号文件
-links n:链接数为n的文件
-regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称
属主属组类:
-user USERNAME:查找属主为指定用户(UID)的文件
-group GROUPNAME:查找属组为指定组(GID)的文件
-uid UserID:查找属主为指定的UID号的文件
-gid GroupID:查找属组为指定的GID号的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
文件类型类:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)f regular file
l symbolic link
s socket
逻辑组合条件类:
组合条件:
与:-a
或:-o
非:-not, !
摩根定律:
(非P) 或(非Q) = 非(P且Q)
(非P) 且 (非Q) = 非(P或Q)
文件大小类:
-size [+|-]#UNIT 常用单位:k,M,G #UNIT: (#-1,#] 如:5M 表示 (4M,5M] -#UNIT: [0,#-1] 如:-5M 表示 [0,5M] +#UNIT: (#,oo) 如:+5M 表示 (6M,oo)
关于文件大小类的解释:为什么-size 5M 还是找精确的5M而是表示(4M,5M], 试想文件的大小指什么?是指文件数据的大小还是包括了元数据后的大小,那你找元数据的大小有意义吗?但文件的大小肯定是包含元数据大小的,而我们一般以文件大小找文件时往往考虑的是文件数据的大小;另外,精确查找一定大小的文件意义不大;所以这里的大小会有1个单位的浮动。
时间戳类:
以”天”为单位: -atime [+|-]# #: [#,#+1) +#: [#+1,oo) -#: [0,#) -mtime -ctime 以“分钟”为单位: -amin -mmin -cmin
关于时间戳类的解释:为什么-atime 3 表示的是 [3,4),这个就很好解释了,我们这儿所说的时间是指时间段而非时刻,一“天”与一“分钟”都是指一个时间段,只有[3,4)这个半闭半开的区间才能完整地表示第三天。
权限类:
-perm [/|-]MODE MODE: 精确匹配权限 /MODE: 任何一类(u,g,o)对象的权限中只要能一位匹配即可,属于或关系。以前用'+',CentOS 7以'/'替代之 -MODE: 每一类对象都必须同时拥有指定权限,属于与关系 0:表示不关注
示例:
find -perm 644 表示要严格匹配644的文件
find -perm +222 表示u,g,o任何一类用户有写权限即匹配
find -perm -222 表示仅严格匹配写权限,即每个用户必须要有写权限
find -perm -002 表示仅严格匹配other用户的写权限
6.使用示例:
实例1:将配置文件备份到指定目录下并添加扩展名.org
[root@localhost ~]# find . -name "*.conf" -exec cp -r {} /testdir/{}.org \; [root@localhost ~]# cd /testdir/ [root@localhost testdir]# ls a.conf.org b.conf.org [root@localhost testdir]#
实例2:.提示删除存在时间超过3天以上的属主为young的临时文件
[root@localhost ~]# find /tmp -ctime +3 -user young -exec rm -fr {} \; [root@localhost ~]#
实例3:在主目录中查找可被其它用户写入的文件
[root@localhost ~]# find ~ -perm -002 /root/num [root@localhost ~]# find ~ -perm -002 -exec chmod o-w {} \; [root@localhost ~]# ll num --w--w---- 1 root root 35 Jan 21 05:55 num
实例4:查找/var目录下属主为root,且属组为mail的所有文件
[root@localhost ~]# find /var -user root -group mail -ls #默认关系就是与 1179652 4 drwxrwxr-x 2 root mail 4096 Jan 23 11:04 /var/spool/mail
实例5:查找/var目录下不属于root、lp、gdm的所有文件
[root@localhost ~]# find /var ! -user root ! -user lp ! -user gdm
实例6:查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件
[root@localhost ~]# find /var/ -mtime -7 ! -user root ! -user postfix -ls 1179676 4 drwx------ 3 daemon daemon 4096 Jan 23 11:04 /var/spool/at 524399 4 drwx------ 2 nginx nginx 4096 Jan 23 03:16 /var/log/nginx 524413 0 -rw-r--r-- 1 nginx root 0 Jan 23 03:16 /var/log/nginx/access.log 524391 0 -rw-r--r-- 1 nginx root 0 Jan 21 03:44 /var/log/nginx/error.log 132174 4 drwx------ 3 nginx nginx 4096 Jan 21 03:44 /var/lib/nginx 132175 4 drwx------ 7 nginx nginx 4096 Jan 21 03:44 /var/lib/nginx/tmp 132173 4 drwx------ 2 nginx root 4096 Jan 21 03:44 /var/lib/nginx/tmp/client_body 132219 4 drwx------ 2 nginx root 4096 Jan 21 03:44 /var/lib/nginx/tmp/proxy 132221 4 drwx------ 2 nginx root 4096 Jan 21 03:44 /var/lib/nginx/tmp/uwsgi 132222 4 drwx------ 2 nginx root 4096 Jan 21 03:44 /var/lib/nginx/tmp/scgi 132220 4 drwx------ 2 nginx root 4096 Jan 21 03:44 /var/lib/nginx/tmp/fastcgi
实例7:查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件
[root@bash ~]# find / -nouser -o -nogroup -a -atime -7
实例8:查找/etc目录下大于1M且类型为普通文件的所有文件
[root@bash ~]# find /etc/ -size +1M -type f /etc/selinux/targeted/policy/policy.29 /etc/udev/hwdb.bin
实例9:查找/etc目录下所有用户都没有写权限的文件
[root@bash ~]# find /etc/ ! -perm /222 /etc/pki/ca-trust/extracted/java/cacerts /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem /etc/lvm/profile/cache-mq.profile /etc/lvm/profile/cache-smq.profile /etc/lvm/profile/command_profile_template.profile /etc/lvm/profile/metadata_profile_template.profile /etc/lvm/profile/thin-generic.profile /etc/lvm/profile/thin-performance.profile /etc/openldap/certs/password /etc/gshadow /etc/dbus-1/system.d/cups.conf /etc/shadow /etc/gshadow- /etc/ld.so.conf.d/kernel-3.10.0-327.el7.x86_64.conf /etc/shadow- /etc/udev/hwdb.bin /etc/machine-id /etc/pam.d/cups /etc/sudoers
实例10:查找/etc目录下至少有一类用户没有执行权限的文件
[root@bash ~]# find /etc/ ! -perm -111 # 至少有一类用户没有就是所有用户都没有
实例11:.查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
[root@bash ~]# find /etc/init.d -perm -113 /etc/init.d
或者
[root@bash ~]# find /etc/init.d -perm -111 -perm -002 /etc/init.d
实例12:摩根定律找出/tmp目录下,属主不是root,且文件名不以f开头的文件
[root@centos7 ~]#find /tmp \( -not -user root -a -not -name 'f*' \) -ls
即
[root@centos7 ~]#find /tmp -not \( -user root -o -name 'f*' \) -ls
实例13:查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
[root@bash ~]# find /etc -path '/etc/sane.d' -prune -o -name '*.conf'
实例14:匹配文件路径或文件
[root@bash ~]# find /usr/ -path '*local' /usr/bin/abrt-action-analyze-ccpp-local /usr/share/doc/postfix-2.10.1/examples/qmail-local /usr/share/aclocal /usr/libexec/postfix/local /usr/local
实例15:基于正则表达式匹配文件路径
[root@bash ~]# find . -regex ".*txt$" ./.mozilla/firefox/4dqu966q.default/revocations.txt ./vimrc/spf13-vim/LICENSE.txt ./a.txt
相关推荐:《Linux视频教程》
위 내용은 Linux에서 파일을 쿼리하는 명령은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Linux 운영을 마스터하는 이유는 광범위한 응용 프로그램 시나리오와 강력한 기능 때문입니다. 1) Linux는 개발자, 시스템 관리자 및 기술 애호가에게 적합하며 서버 관리, 임베디드 시스템 및 컨테이너화 기술에 사용됩니다. 2) Learning Linux는 파일 시스템 구조, 쉘 사용, 사용자 권한 관리 및 프로세스 관리로 시작할 수 있습니다. 3) Linux 명령 줄은 핵심 도구로 LS, MKDIR, CD 등과 같은 쉘을 통해 명령을 실행하고 리디렉션 및 파이프 라인 작업을 지원합니다. 4) 고급 사용법에는 TAR 명령 및 조건부 판단을 사용한 백업 스크립트와 같은 자동 스크립트 작성이 포함됩니다. 5) 일반적인 오류에는 Echo, Set-X 및 $?를 통해 디버깅 할 수있는 권한, 경로 및 구문 문제가 포함됩니다. 6) 성능 최적화 제안

Linux 시스템의 5 개의 기둥은 다음과 같습니다. 1. Kernel, 2. System Library, 3. Shell, 4. 파일 시스템, 5. 시스템 도구. 커널은 하드웨어 리소스를 관리하고 기본 서비스를 제공합니다. 시스템 라이브러리는 애플리케이션에 대한 사전 컴파일 된 기능을 제공합니다. 쉘은 사용자가 시스템과 상호 작용할 수있는 인터페이스입니다. 파일 시스템은 데이터를 구성하고 저장합니다. 시스템 도구는 시스템 관리 및 유지 보수에 사용됩니다.

Linux 시스템에서 시작시 특정 키를 누르거나 "sudosystemctlrescue"와 같은 명령을 사용하여 유지 보수 모드를 입력 할 수 있습니다. 유지 보수 모드는 관리자가 파일 시스템 수리, 비밀번호 재설정, 보안 취약성 패치 등과 같은 간섭없이 시스템 유지 관리 및 문제 해결을 수행 할 수 있습니다.

Linux 초보자는 파일 관리, 사용자 관리 및 네트워크 구성과 같은 기본 작업을 마스터해야합니다. 1) 파일 관리 : mkdir, touch, ls, rm, mv 및 cp 명령을 사용하십시오. 2) 사용자 관리 : userAdd, passwd, userdel 및 usermod 명령을 사용합니다. 3) 네트워크 구성 : ifconfig, echo 및 ufw 명령을 사용하십시오. 이러한 운영은 Linux 시스템 관리의 기초이며, 마스터하면 시스템을 효과적으로 관리 할 수 있습니다.

이 기사는 Linux의 Sudo 권한을 관리하는 방법, 보안 및 보안 모범 사례를 포함하여 Linux의 Sudo 권한을 관리하는 방법을 설명합니다. 주요 초점은 /etc /sudoers를 안전하게 편집하고 액세스를 제한하는 데 중점을 둡니다. 문자 수 : 159

이 기사는 Google Authenticator를 사용하여 Linux에서 SSH에 대한 2 단계 인증 (2FA) 설정, 설치, 구성 및 문제 해결 단계에 대한 가이드를 제공합니다. Enhanced SEC와 같은 2FA의 보안 이점을 강조합니다.

이 기사는 Linux 시스템 성능을 모니터링하기위한 Top, HTOP 및 VMSTAT 사용에 대해 설명하고 효과적인 시스템 관리를위한 고유 한 기능 및 사용자 정의 옵션을 자세히 설명합니다.

기사는 APT, YUM 및 DNF를 사용하여 Linux의 소프트웨어 패키지 관리, 설치, 업데이트 및 제거를 다루는 것에 대해 설명합니다. 다양한 분포에 대한 기능과 적합성을 비교합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
