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