Linux基本命令学習(三)——Find

3475 ワード

  • find  

  • findコマンドは、指定したディレクトリの下でファイルを検索するために使用されます.パラメータの前にある文字列は、検索するディレクトリ名とみなされます.このコマンドを使用してパラメータを設定しない場合、findコマンドは現在のディレクトリの下でサブディレクトリとファイルを検索します.検索したサブディレクトリとファイルがすべて表示されます.
  • 1、現在のディレクトリ内のすべてのファイルを検索する:find.
    bjhl$ find .
    .
    ./printable_docs
    ./printable_docs/index.html
    ./printable_docs/jmeter_irc.html
    ./printable_docs/changes.html
    ./printable_docs/issues.html
    ./printable_docs/mail.html
    ./printable_docs/changes_history.html
    

    2、あるディレクトリの下で指定した接尾辞ファイルを検索する:find/ディレクトリ-name"*.xlsx"
    llll$ find Downloads/ -name "*.xlsx"
    Downloads//      (1).xlsx
    Downloads//     20200101-20200201.xlsx
    Downloads//      (9).xlsx
    Downloads//2019    .xlsx
    Downloads//2019     (1).xlsx
    Downloads//     .xlsx
    Downloads//      (2).xlsx
    

    3、あるディレクトリの下で大文字と小文字を無視するファイルを探す:find/ディレクトリ-iname"*.xlsx"
    bjhl$ find Downloads/ -iname "*.xlsx"
    Downloads//      (1).xlsx
    Downloads//     20200201.xlsx
    Downloads//      (9).xlsx
    Downloads//     .xlsx
    Downloads//      (1).xlsx
    Downloads//     .xlsx
    Downloads//      (2).xlsx
    

    4、同僚は同じディレクトリの下で2つの接尾辞名が一致しないファイルを検索する:find./ディレクトリ-name"*.xlsx"-o-name"*.jpg"
    bjhl$ find . Downloads/  -name  "*.xlsx"  -o  -name  "*.jpg"
    Downloads//      (1).xlsx
    Downloads//     20200101.xlsx
    Downloads//      (9).xlsx
    Downloads//     .xlsx
    Downloads//      (1).xlsx
    Downloads//     .xlsx
    Downloads//      (2).xlsx
    Downloads//12/1/8.jpg
    Downloads//12/2/9.jpg
    Downloads//12/3/10.jpg
    Downloads//12/4/4.jpg
    

    5、現在のディレクトリまたは現在のディレクトリのサブディレクトリの下で接尾辞名の異なるファイルを検索する2つの書き方:find./ディレクトリ/(-name"*.xlxs"-o-name"*.jpg"/)
    ~ llll$ find . -name "*.xlsx" -o -name "*.pdf"
    ./Desktop/  /  .xlsx
    ./Desktop/  /  .pdf
    ./Desktop/  /  .pdf
    ./Desktop/  /  .xlsx
    ./Desktop/\/  .xlsx
    ~ llll$ find . \( -name "*.pdf" -o -name ".xlsx" \)        #          -name     
    ./Desktop/11.pdf
    ./Desktop/112.pdf
    ./Desktop/113.pdf
    ./Desktop/114.pdf
    ~ bjhl$ find . \( -name "*.txt" -o -name "*.pdf" \)
    ./.eclipse/org.eclipse.oomph.jreinfo/infos.txt
    ./gitTest/one.txt
    ./.local/share/virtualenvs/5.txt
    ./.local/share/virtualenvs/bjhl-A-cAkrVB/4.txt
    ./.local/share/virtualenvs/3.txt
    ./.local/share/virtualenvs/2.txt
    ./.local/share/1.txt
    

    6、あるディレクトリの下のファイルまたはディレクトリを検索する:find/ディレクトリ/-path"*検索したキーワード*"
    ~ llll$ find /etc/ -path "*man*"
    /etc//manpaths
    /etc//asl/com.apple.performance
    /etc//manpaths.d
    /etc//apache2/original/extra/httpd-manual.conf
    /etc//apache2/extra/httpd-manual.conf
    find: /etc//cups/certs: Permission denied
    /etc//man.conf
    

    7、あるディレクトリの下にある接尾辞で終わるファイルを見つけます:find/ディレクトリ!-name   "*.xlsx"
    ~ llll$ find  usr/  !  -name  "*.txt"     #  usr           .txt    
    usr//share/cups/mime/apple.types
    usr//share/cups/mime/mime.types
    usr//share/cups/mime/apple.convs
    usr//share/cups/mime/mime.convs
    usr//share/cups/profiles
    usr//share/cups/data

    8、ファイルの種類によってファイル検索を行い、文法は:find.typeパラメータ、ファイルタイプには主に以下のクラスがあります.
  • f一般ファイル
  • lシンボル接続
  • dディレクトリ
  • c文字デバイス
  • bブロック装置
  • sソケット
  • p Fifo
  • ~ llll$ find  .  type  c
    ~ llll$ find  .  type  d
    ~ llll$ find  .  type  f
    ~ llll$ find  .  type  s

    詳細については、以下を参照してください.https://man.linuxde.net/find