検索
ホームページ運用・保守Linuxの運用と保守Linux でファイルをクエリするコマンドは何ですか?

Linux ファイル クエリ コマンド: 1.locate、条件を満たすファイルの検索に使用されます。構文は「locate [パラメータの選択] [スタイル]」です。2.find、指定されたディレクトリ内のファイルの検索に使用されます。 , 「find [OPTION]...[検索パス] [検索条件] [処理アクション]」という構文です。

Linux でファイルをクエリするコマンドは何ですか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

Linux でファイルをクエリするための一般的なコマンドは 2 つあります:

  • locate

  • find

locate

locate を使用すると、ユーザーはファイル システム内に指定されたファイルがあるかどうかをすばやく検索できます。この方法では、まずシステム内のすべてのファイルの名前とパスを含むデータベースを作成し、その後、検索するときに実際にファイル システムに深く入ることなく、このデータベースにクエリを実行するだけで済みます。一般的なディストリビューションではデータベースの作成はcrontabで自動的に実行されます。

1. コマンド形式:

locate [选择参数] [样式]

2.コマンド機能:

locate コマンドは、データベースの検索時にファイルをすばやく見つけることができます。locate はあいまい検索です。データベースは updatedb プログラムによって更新されます。updateb は cron デーモンによって定期的に作成されます。コマンドはデータベースを検索します。ハードディスク データ全体を検索するよりも高速ですが、locate で見つかったファイルが最近作成または名前変更されたものである場合、見つからない可能性があるという欠点があります。デフォルト設定では、updateb は 1 日に 1 回実行されます. crontabを変更することで設定値を更新できます。 (etc/crontab)

locate は、条件を満たすファイルを検索するために指定されています。ファイル名とディレクトリ名をデータベースに保存します。ファイルを検索する場合、/var/lib/mlocate を検索します。 /mlocage.db, テンプレート スタイルの条件を満たすファイルまたはディレクトリを検索します。特殊文字 (「*」や「?」など) を使用してテンプレート スタイルを指定できます。指定されたテンプレートが kcpa*ner の場合、locate はすべての開始文字を検索します。文字列が kcpa で、ner で終わるファイルまたはディレクトリ。たとえば、名前が kcpartner の場合、ディレクトリ名が kcpa_ner の場合、サブディレクトリを含むディレクトリ内のすべてのファイルがリストされます。

locate コマンドの機能は find の機能と似ています。ただし、locate は更新プログラムを使用して、最初にハードディスク内のすべてのファイルとディレクトリ データのインデックス データベースを作成します。loacte を実行すると、インデックスが直接作成されます。クエリ速度が低下します。高速化すると、通常、インデックス データベースはオペレーティング システムによって管理されますが、更新を直接発行して、システムにインデックス データベースの即時変更を強制することもできます。

3.コマンドパラメータ:

  • #-e は検索範囲から除外されます。

  • -1 はいの場合 1.次にセーフモードを起動します。セーフ モードでは、ユーザーは表示を許可されていないアクセス許可を持つファイルは表示されません。ファイルのアクセス許可情報を取得するには、locate が実際のファイル システムにアクセスする必要があるため、速度が低下し始めます。

  • -f は特定のファイル システムを除外します。たとえば、データベース内の proc ファイル システムにファイルを不当に配置することはありません。

  • -q Quiet モードでは、エラー メッセージは表示されません。

  • -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/>

    Find path: 特定のターゲット パスを指定します。デフォルトは現在のディレクトリです
  • 検索条件: 指定した検索基準は、ファイル名、サイズ、タイプ、権限、その他の基準に基づくことができます。デフォルトでは、指定したパスの下にあるすべてのファイルが検索されます。
  • 処理動作 : 条件に合致するファイルを操作し、デフォルトで画面出力
3. 検索条件 :

    ファイルに従って 名前と inode で検索
  • 所有者とグループで検索
  • ファイルの種類で検索
  • ## 論理結合条件に基づいて検索
  • ファイル サイズに基づいて検索
  • タイムスタンプに基づいて検索
  • 権限に基づいて検索
  • 4. 処理アクション:

- print: デフォルトのアクション、画面に表示
  • -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)

Linux でファイルをクエリするコマンドは何ですか?

Linux でファイルをクエリするコマンドは何ですか?

文件大小类:

-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

Linux でファイルをクエリするコマンドは何ですか?

关于时间戳类的解释:为什么-atime 3 表示的是 [3,4),这个就很好解释了,我们这儿所说的时间是指时间段而非时刻,一“天”与一“分钟”都是指一个时间段,只有[3,4)这个半闭半开的区间才能完整地表示第三天。

权限类:

-perm [/|-]MODE
    MODE: 精确匹配权限
    /MODE: 任何一类(u,g,o)对象的权限中只要能一位匹配即可,属于或关系。以前用&#39;+&#39;,CentOS 7以&#39;/&#39;替代之
    -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 &#39;f*&#39; \) -ls

[root@centos7 ~]#find /tmp -not \( -user root -o -name &#39;f*&#39; \) -ls

实例13:查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件

[root@bash ~]# find /etc -path &#39;/etc/sane.d&#39; -prune -o -name &#39;*.conf&#39;

实例14:匹配文件路径或文件

[root@bash ~]# find /usr/ -path &#39;*local&#39;
/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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Debian Hadoopデータをバックアップする方法Debian Hadoopデータをバックアップする方法Apr 12, 2025 pm 09:57 PM

Debian SystemsでのHadoopデータのセキュリティと可用性を確保することが重要です。この記事では、最も適切なソリューションを選択するのに役立つ一般的に使用されるHadoopデータバックアップメソッドをいくつか紹介します。 Hadoopデータバックアップ戦略次のメソッドに従うことでHadoopデータをバックアップできます。HDFSデータを手動でコピーする:Hadoopコマンドラインツールを使用して、ソースディレクトリからバックアップディレクトリにHDFSデータを直接コピーします。例:hadoopfs-cphdfs:// localhost:9000/source path hdfs:// localhost:9000/backup path hadoopdistcp:distcp(distribu

Debian Hadoopログを表示する方法Debian Hadoopログを表示する方法Apr 12, 2025 pm 09:54 PM

この記事では、DebianシステムでHadoopログを効率的に表示する方法を紹介します。 Hadoopのログ集約関数は、各ノードのログを中央に保存して、簡単に管理します。次の手順では、これらのログを表示する方法をガイドします。ステップ1:最初にログ集約が有効になっていることを確認して、Hadoopクラスター内のすべてのノードのログ集約が有効になっていることを確認します。これは通常、yarn-site.xml構成ファイルで構成されています:yarn.log-aggregation-enabletrueyarn.log-aggregation.retain-seconds172800yarn.nodemanager.re

Debianシステムでジャンクファイルをクリーンアップする方法Debianシステムでジャンクファイルをクリーンアップする方法Apr 12, 2025 pm 09:51 PM

この記事では、Debianシステムでジャンクファイルを効果的にクリーンアップし、ディスクスペースを解放し、システムのパフォーマンスを向上させる方法を紹介します。削除操作を実行する前に、必ず重要なデータをバックアップしてください。 1. Apt Cache Apt Cacheストアのダウンロードパッケージを清掃します。これらのキャッシュのクリーニングは多くのスペースを解放できます:sudoaptclean#ダウンロードキャッシュをクリーニングしてsudoaptcleanallをクリーニングしますsudoaptcleanallをクリーニングしますsudorm-rf/var/lib/lib/lib/lists/*

Debianで役に立たないプロセスをリサイクルする方法Debianで役に立たないプロセスをリサイクルする方法Apr 12, 2025 pm 09:48 PM

この記事では、Debianシステムで役に立たないプロセスを効果的に終了する方法について説明します。次の方法が利用可能です。方法1:最初にキルコマンド、Psaux | grepプロセス名コマンドを使用して、ターゲットプロセスのプロセスID(PID)を見つけます。 PIDが見つかった後、KillPidコマンドを使用してプロセスを終了します。プロセスが反応しない場合は、強力なコマンドKill-9PIDを使用して強制終了します。方法2:pkillコマンドPKILLコマンドを使用すると、プロセス名またはその他の属性に基づいてプロセスを終了できます。たとえば、pkillprocess_nameは、process_nameという名前のすべてのプロセスを終了します。 PKILL-9PR

debian node.jsログのエラーコードの意味の分析debian node.jsログのエラーコードの意味の分析Apr 12, 2025 pm 09:45 PM

Debianシステムでnode.jsを使用する場合、ログのエラーコードは、開発者が問題を迅速に見つけて解決するのに役立ちます。以下は、いくつかの一般的なnode.jsエラーコードとその意味です。EPERM:操作は許可されていません。これは通常、ログディレクトリを作成しようとするときに十分な権限がないなど、許可の問題が原因です。 enoent:そのようなファイルやディレクトリはありません。これは、アクセスまたは作成を試みたファイルまたはディレクトリが存在しないことを意味します。 eisdir:はディレクトリです。これは通常、ディレクトリとしてファイルを処理しようとするときに起こります。 ea

アイドルネットワーク帯域幅をリサイクルする方法アイドルネットワーク帯域幅をリサイクルする方法Apr 12, 2025 pm 09:42 PM

Debian Systemsでは、Linuxカーネルメカニズムがこの機能を直接サポートしていないため、ネットワーク帯域幅を直接「リサイクル」することは容易ではありません。ただし、一連の最適化測定を通じて間接的に帯域幅の利用を改善することができます。次の戦略は参照用に利用できます。ファインネットワーク構成:NetPlanまたは/etc/etc/network/interfacesファイルを使用して、ネットワーク設定を最適化します。たとえば、静的IPアドレスの構成またはDHCPパラメーターの調整は、不必要なIPアドレスの割り当てとリリースを減らすことができ、それにより効率が向上します。正確なフロー制御:フロー制御ツールTC(TrafficControl)を使用して、特定のアプリケーションの帯域幅使用量を制限し、重要なタスクに十分な帯域幅リソースがあることを確認します。

Debian Snifferを構成する方法Debian Snifferを構成する方法Apr 12, 2025 pm 09:39 PM

DebianシステムでネットワークSniffer(Wiresharkなど)の構成には、必要なソフトウェアパッケージのインストール、ネットワークインターフェイスの構成、スニッフィングコマンドの実行など、いくつかのステップが必要です。ネットワークのスニッフィングにはセキュリティとプライバシーの問題が含まれる可能性があるため、スニッフィングを行う前に、法的権限があり、関連するすべての法律、規制、プライバシーポリシーに準拠していることを確認してください。この記事では、一般的に使用されるネットワークプロトコルアナライザーであるWiresharkを例として取り、Debianシステムにのインストールと構成を説明します。DebianにWiresharkをインストールして端末を開きます。更新パッケージリスト:sudoaptupdateインストールwireshark:sudoaptinstall

Debian node.jsのログ形式をカスタマイズする方法Debian node.jsのログ形式をカスタマイズする方法Apr 12, 2025 pm 09:36 PM

この記事では、Winston Log Libraryを例にとって、Debianシステムでnode.jsアプリケーションのログ形式をカスタマイズする方法を紹介します。ステップ1:最初にウィンストンをインストールし、ウィンストンがインストールされていることを確認してください。インストールされていない場合は、プロジェクトルートディレクトリで次のコマンドを実行してください。NPMINSTALLWINSTONステップ2:カスタムログフォーマットの作成logger.jsという名前のファイルを作成し、カスタムログ形式を定義するために次のコードを作成します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境