GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドラインからファイルを検索する方法

GUIを使用している場合、ファイルの検索は比較的簡単です。ただし、GUIのない​​サーバーなどの特定の環境では、コマンドラインを使用してファイルを検索する必要があります。

Linuxには、findというファイルやフォルダを検索するのに役立つ強力なコマンドがあります。 。この記事では、findについて説明します。 いくつかの例を含むコマンド。

Linuxのfindコマンドとは何ですか?

find コマンドを使用すると、ファイル、フォルダ、文字およびブロックデバイスを効率的に検索できます。

以下は、findの基本的な構文です。 コマンド:

find /path/ -type f -name file-to-search

どこで、

  • /path ファイルが見つかると予想されるパスです。これは、ファイルを検索するための開始点です。パスは/にすることもできます または. それぞれルートディレクトリと現在のディレクトリを表します。
  • -type ファイル記述子を表します。次のいずれかになります。

f通常のファイル テキストファイル、画像、隠しファイルなど。

dディレクトリ 。これらは検討中のフォルダです。

lシンボリックリンク 。シンボリックリンクはファイルを指し、ショートカットに似ています。

cキャラクターデバイス 。キャラクターデバイスへのアクセスに使用されるファイルは、キャラクターデバイスファイルと呼ばれます。ドライバーは、単一の文字(バイト、オクテット)を送受信することにより、文字デバイスと通信します。例としては、キーボード、サウンドカード、マウスなどがあります。

bデバイスをブロックする 。ブロックデバイスへのアクセスに使用されるファイルは、ブロックデバイスファイルと呼ばれます。ドライバーは、データのブロック全体を送受信することにより、ブロックデバイスと通信します。例としては、USB、CD-ROM

  • -name 検索するファイルタイプの名前です。
検索コマンドの例

これで、findの構文がわかりました。 コマンド、いくつかの例を見てみましょう。

名前または拡張子でファイルを検索する方法

名前に「style」が含まれているファイルを見つける必要があるとします。次のコマンドを使用します:

find . -type f -name style*

出力

ここで、.htmlのような特定の拡張子を持つファイルを検索するとします。 。コマンドを次のように変更します:

find . -type f -name *.html

出力

隠しファイルを検索する方法

隠しファイルは、ファイル名の先頭にあるドットで表されます。通常は非表示になっていますが、ls -aで表示できます 現在のディレクトリにあります。

findを変更できます 隠しファイルを検索するには、以下に示すコマンドを実行します。

find . -type f -name ".*"

出力

ログファイルと構成ファイルを検索する方法

ログファイルの拡張子は通常.logです。 、次のように見つけることができます:

 find . -type f -name "*.log"

出力

同様に、次のような構成ファイルを検索できます。

 find . -type f -name "*.conf"
タイプ別に他のファイルを検索する方法

cを指定すると、文字ブロックファイルを検索できます。 -typeへ :

find / -type c

同様に、デバイスブロックファイルはbを使用して見つけることができます :

find / -type b
ディレクトリを検索する方法

以下の例では、libという名前のフォルダーを検索しています。 。 -type dを使用していることに注意してください 。

find . -type d -name "lib*"

出力

💡ヒント:dを見ればディレクトリを特定できます ls -lrtの出力のフラグ 。

サイズでファイルを検索する方法

findの信じられないほど便利な使用法 コマンドは、特定のサイズに基づいてファイルを一覧表示することです。

find / -size +250MB

その他のユニットは次のとおりです。

  • G :ギガバイト。
  • M :メガバイト。
  • K :キロバイト
  • b :バイト。

<ユニットタイプ>を関連するユニットに置き換えるだけです。

find <directory> -type f -size +N<Unit Type>
変更時間でファイルを検索する方法
find /path -name "*.txt" -mtime -10 

  • -mtime +10 10日前に変更されたファイルを探していることを意味します。
  • -mtime -10 10日未満を意味します。
  • -mtime 10 +または–をスキップすると、正確に10日を意味します。

以下は私のホームディレクトリの内容です:

私のホームディレクトリに例を適用してみましょう。

find . -type f -name ".*" -mtime +10

findの実用的な例 bashスクリプトを使用

findを組み合わせることができます rmを使用 またはmv 自動化できる意味のあるbashスクリプトを作成します。

7日より古いログファイルをバックアップパスに移動するスクリプトを作成するとします。そこから、30日より古いログファイルを削除します。スクリプトを作成し、cronでスケジュールすることができます 。 cronについて詳しく知ることができます ここでの仕事。

スクリプトを見てみましょう:

#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*

# move ESB01 logs to backup
find /logs/esb01/audit  -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;

# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30  -exec rm {} \;

execを使用していることに注意してください findを使用 。基本的に、exec 提供されたコマンドを実行します(mv およびrm 私たちの場合には)。 {} コマンドの結果を保持するプレースホルダーです。最後に、区切り文字;を提供します 。シェルにセミコロンを解釈させたくないので、\でエスケープします。 。

共有スクリプトは、ログのアーカイブと削除に非常に役立ちます。

まとめ

この記事では、findについて学習しました。 コマンドを詳細に記述し、名前、タイプ、サイズ、変更時間でファイルを検索する方法を学びました。

このチュートリアルがお役に立てば幸いです。

Twitterであなたの考えを共有してください!

私の他の投稿はここで読むことができます。

リソース:StorysetとCanvaによるOfficeイラストのバナー画像。


Linux
  1. Linuxコマンドラインに関する8つのヒント

  2. コマンドラインでのファイルの検索(ハウツー)

  3. Linux コマンドラインからフォルダーをコピーするにはどうすればよいですか?

  1. Linuxコマンドラインからソフトウェアをインストールする方法

  2. コマンドラインでCentOS8でファイルを検索する方法

  3. コマンドラインからのLinuxサーバーの移行

  1. 4Linuxコマンドライン用のマークダウンツール

  2. Rangerを使用してコマンドラインからファイルをナビゲートする方法

  3. Linux の find コマンドを使用してファイルを検索する方法