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イラストのバナー画像。