【Shellスクリプトプログラミング(三)】常用ツール

6540 ワード

1.ファイル検索のfindコマンド


1.1. 構文フォーマット


構文フォーマット
find[パス][オプション][アクション]

1.2. オプションパラメータ対照表


オプション
意味
-name
ファイル名で検索
-perm
ファイル権限に基づいて検索
-prune
このオプションでは、特定の検索ディレクトリを除外できます.
-user
ファイル所有者による検索
-group
ファイルグループに基づいて検索
-mtime -n | +n
ファイルに基づいて時間を変更して検索
-nogroup
有効なグループがないファイルの検索
-nouser
有効な所有者のないファイルの検索
-newer file1 ! file2
file 1より新しいがfile 2より古いIDEファイルの検索
-type
ファイルタイプ別検索
-size -n +n
ファイルサイズで検索
-mindepth n
nレベルのサブディレクトリから検索を開始
-maxdepth n
最大nレベルのサブディレクトリを検索
findコマンドの概要:
一般的なオプション:
  • -name検索/etcディレクトリの下でconfで終わるファイルfind/etc-name'*conf'
  • -iname現在のディレクトリの下のファイル名aaのファイルを検索し、大文字と小文字を区別しません.-iname aa
  • -userは、hdfsが所有するすべてのファイルfindを検索します.-user hdfs
  • -groupファイル属グループyarnのすべてのファイルfindを検索します.-group yarn
  • -type
  • fファイルfind.-type f
  • dディレクトリfind.-type d
  • c文字デバイスファイルfind.-type c
  • bブロックデバイスファイルfind.-type b
  • lリンクファイルfind.-type l
  • pパイプファイルfind.-type p

  • -size
  • -nサイズがn未満のファイル
  • +nサイズがnより大きいファイル
  • 例1:検索/etcディレクトリの下で10000バイト未満のファイルfind/etc-size-1000 c
  • 例2:検索/etcディレクトリの下で1 Mより大きいファイルfind/etc-size+1 M

  • -mtime
  • -n日以内に修正されたファイル
  • +n日以外に修正されたファイル
  • nちょうどn日修正したファイル
  • 例1:検索/etcディレクトリの5日以内に修正するconfで終わるファイルfind/etc-mtime-5-name'*.conf’
  • 例2:検索/etcディレクトリの下10日前に変更され、所有者がrootのファイルfind/etc-mtime+10-user root

  • -mmin
  • -n分以内に修正されたファイル
  • +n分以外に修正したファイル
  • 例1:検索/etcディレクトリの下30分前に変更したファイルfind/etc-mmin+30
  • 例2:検索/etcディレクトリの下30分以内に変更するディレクトリfind/etc-mmin-30-type d

  • -mindepth nはnレベルのサブディレクトリから検索を開始することを示す
  • 例:/etcの下の3級サブディレクトリでfind/etc-mindepth 3
  • の検索を開始する
  • -maxdepth nは、最大nレベルのサブディレクトリを検索することを示します.
  • 例1:条件を満たすファイルを/etcで検索するが、最大2級サブディレクトリfind/etc-maxdepth 2-name'*.conf’
  • 例2:find./etc/-type f -name ‘*.conf’ -size +10k -maxdepth 2


  • オプションについて説明します.
  • -nouser所有者のないユーザーを検索
  • 例:find.-type f -nouser

  • -nogroupグループに属していないユーザーを検索
  • 例:find.-type f -nogroup

  • perm
  • 例:find.perm 664

  • pruneは通常-pathとともに使用され、特定のディレクトリを検索条件から除外するために使用されます.
  • 例1:現在のディレクトリの下にあるすべての一般ファイルを検索しますが、testディレクトリを除外します.
  • find . -path ./etc -prune -o -type f
    
  • 例2:現在のディレクトリの下にあるすべての一般ファイルを検索するが、etcおよびoptディレクトリを除外する.
  • find . -path ./etc -prune -o -path ./opt -prune -o -type f
    
  • 例3:現在のディレクトリの下にあるすべての一般ファイルを検索しますが、etcとoptディレクトリは除外されますが、所有者はhdfsです.
  • find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs
    
  • 例4:現在のディレクトリの下にあるすべての一般ファイルを検索しますが、etcおよびoptディレクトリは除外されますが、所有者はhdfsであり、ファイルサイズは500バイト以上でなければなりません.
  • find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs -a -size +500c
    
  • -newer file1
  • 例:find/etc-newer a

  • 操作:
  • -print印刷出力
  • -execは検索したファイルに対して特定の操作を実行し、フォーマットは-exec‘command’{}である.
  • 例1:/etcの下のファイル(ディレクトリ以外)を検索し、ファイル名をconfで終わり、10 kより大きくして削除する.
  • find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \;
    
  • 例2:/var/log/ディレクトリの下にlogで終わるファイルを7日以上変更して削除する.
  • find /var/log -name '*.log' -mtime +7 -exec rm -rf {} \;
    
  • 例3:検索条件は例1と同様に、削除するのではなく、/root/confディレクトリにコピーする.
  • find ./etc/ -size +10k -type f -name '*.conf' -exec cp {} /root/conf/ \;
    
  • -okはexec機能と同様ですが、操作のたびに
  • をユーザーに提示します.
    論理演算子:
  • -aと
  • -oまたは
  • -not|! 非
  • 例1:現在のディレクトリの下で、hdfsではない所有者のすべてのファイルを検索します.
  • find . -not -user hdfs | find . ! -user hdfs
    
  • 例2:現在のディレクトリの下で、所有者がhdfsに属し、サイズが300バイトより大きいファイルを検索する.
  • find . -type f -a -user hdfs -a -size +300c
    
  • 例3:現在のディレクトリの下の所有者がhdfsまたはxmlで終わる通常のファイルを検索する.
  • find . -type f -a \( -user hdfs -o -name '*.xml')
    

    2.find、locate、whereisとwhichの総括と適用シーン分析


    2.1. locateコマンドの説明

  • ファイル検索コマンド、所属パッケージmlocate;
  • はfindコマンドとは異なり、ディスク全体で検索され、locateコマンドはデータベースファイルで検索されます.
  • findはデフォルトのすべてのマッチングであり、locateはデフォルトの部分マッチングである.

  • 2.2. updatedbコマンド

  • ユーザ更新/var/lib/mlocate/mlocate.db
  • で使用するプロファイル/etc/updatedb.conf
  • バックグラウンドcron計画タスクで
  • を定期的に実行するコマンド

    2.3. whereis


    オプション
    意味
    -b
    バイナリファイルのみを返す
    -m
    ヘルプドキュメントファイルのみを返す
    -s
    ソースファイルのみを返す

    2.4. which


    役割:バイナリ・ファイルのみを検索
    オプション
    意味
    -b
    バイナリファイルのみを返す

    2.5. 各コマンド使用シーン推奨


    コマンド#コマンド#
    適用シーン
    メリットとデメリット
    find
    ファイル名の部分が一致するなど、ファイルのクラスを検索します.
    機能が強く、速度が遅い
    locate
    単一ファイルのみ検索
    機能が単一で、速度が速い
    whereis
    検索プログラムの実行可能ファイル、ヘルプドキュメントなど
    非常用
    which
    プログラムの実行可能ファイルのみを検索
    検索プログラムでよく使用される絶対パス