Linux テキスト検索コマンド find の詳細な使用方法

Linux テキスト検索コマンド find の詳細な使用方法

find コマンドは主にディレクトリやファイルを検索するために使用され、一致のために複数のパラメータを指定できます。

使用方法: find +查找路徑 +命令參數 [輸出形式]

検索パス:検索する場所を指定します

コマンド パラメータ:タイプ、名前、サイズ、変更時刻などのさまざまな属性を含む、検索するファイル属性を指定します。

よく使用されるパラメータ:

  • -name ファイル名で検索
  • -user ファイルの所有者で検索
  • -mtime はファイルの変更時間で検索します。-n はファイルの変更時間が今日から n 日以内であることを意味し、+n はファイルの変更時間が今日から n 日以上であることを意味します。
  • -type ファイルタイプで検索します。d はディレクトリ、f はファイル、l はシンボリックリンクファイルを意味します。
  • -size ファイルサイズで検索(単位 K、M、G を追加する必要があります)、+n M は n M より大きいファイルを検索することを意味します。
  • -maxdepth は、ファイルを検索するときの最大深度を指定します (デフォルトでは、指定されたパスの下のすべてのサブディレクトリを検索します。深度を指定すると、第 1 レベルのディレクトリまたは第 2 レベルのディレクトリのみを検索できるようになります)

出力形式:出力形式はオプションです。出力形式には、見つかったコンテンツを印刷する -print (デフォルトでは見つかったコンテンツを印刷するため、通常は使用されません) と、見つかったコンテンツをさらに処理する -exec (より一般的に使用されます) があります。形式は次のとおりです。

-exec Linuxコマンド {} \; {}は見つかったコンテンツを表します

例:

find . -maxdepth 1 -name "1.txt" # 検索するファイル名を直接指定します。-maxdepth 1 は、最大検索レベルが第 1 レベルのディレクトリであることを意味します。 

find . -maxdepth 1 -name "*.txt" # 現在のディレクトリで .txt で終わるファイルを検索します

find . -maxdepth 1 -name "[0-9].txt" # 数字で名前が付けられたtxtファイルを検索

find . -maxdepth 1 -name "[0-9]*.txt" # 数字で始まるファイルを検索

find . -maxdepth 1 -mtime -5 # 現在のディレクトリで 5 日以内に変更されたファイルを検索find . -maxdepth 1 -mtime +5 # 現在のディレクトリで 5 日以上変更されたファイルを検索find . -maxdepth 1 -type d # 現在のディレクトリでディレクトリ タイプのファイルを検索します。最大検索レベルは 1 ディレクトリです (隠しディレクトリも検索されます) 

find . -maxdepth 1 -size +10M # 現在のディレクトリで 10M より大きいファイルを検索 find . -maxdepth 1 -size -1M # 現在のディレクトリで 1M より小さいファイルを検索

find . -maxdepth 1 -name "[az].txt" -exec rm -rf {} \; # 1 文字で名前が付けられた txt ファイルを検索して削除します find . -maxdepth 1 -name "*.txt" | xargs grep "error" # txt で終わるファイル内の error のある行の内容を出力します find . -maxdepth 1 -name "*.txt" | xargs rm # 現在のディレクトリ内の txt で終わるファイルを削除します

xargsはパイプラインの前のコマンドの実行結果を、パイプラインの後のコマンドにパラメータとして1つずつ渡します。

ls [az].txt | xargs -n1 -i{} mv {} {}.bak # 現在のディレクトリにある 1 文字で名前が付けられた txt ファイルに .bak サフィックスを追加します。-n1 はオブジェクトを 1 つずつ処理することを意味します。-i{} は前のオブジェクトを {} に置き換えます。mv {} {}.bak は mv a.txt a.txt.bak と同じです。 

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Linux での透過的巨大ページの使用と無効化の概要
  • Linux での Python のアップグレードと pip のインストールの詳細な説明
  • Linux シェル ディレクトリ内のファイルを検索するために、if と組み合わせた for ループを使用する方法
  • Linuxで現在のスクリプトの実際のパスを取得する方法
  • Linuxはlsofコマンドを使用してファイルのオープンステータスを確認します
  • Linux 仮想メモリ設定のチュートリアルと実践
  • Linux での grep コマンドの使い方の詳細な説明
  • Linuxのテキスト処理コマンドsortの詳細な説明
  • Linuxのsortコマンドの複数のパラメータを理解するための1つの質問
  • Linux で文字化けしたファイルや特殊文字のファイルを削除する方法

<<:  CocosCreatorでクールなレーダーチャートを描く方法

>>:  Centos7 で yum を使用して Mysql5.7.19 をインストールする詳細な手順

推薦する

Vue フロントエンドで PDF を生成してダウンロードする方法

目次1. インストールと導入2. PDFファイルをパッケージ化してエクスポートする方法構成の詳細PD...

英語のシングルクォーテーション「''」を含むSQLの記述の失敗について徹底解説

問題が発生しました。情報の編集をテストする際、編集した内容に一重引用符 (') が含まれてい...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

MySQL binlog の解析

目次1. binlogの紹介2. Binlog関連のパラメータ3. バイナリログの内容を分析するIV...

MySQL データテーブルのパーティション戦略と利点と欠点の分析

目次なぜパーティションが必要なのでしょうか?パーティショニング戦略パーティションの危険性なぜパーティ...

vscodeを使用してReact Native開発環境を構築する方法を教えます

質問コードにはプロンプトがありません: RN 開発に不慣れな、フロントエンド以外の学生の多くは、「ど...

PHP-HTMLhtml 重要な知識ポイントメモ(必読)

1. フレームセット、フレーム、iframeを使用して複数のウィンドウを実現する2. 画像上のマッ...

MySQL ストアド プロシージャの使用例の分析

この記事では、MySQL ストアド プロシージャの使用方法について説明します。ご参考までに、詳細は以...

CSSを使用してすべての子要素を選択する方法の詳細な説明

CSS を使用してすべての子要素を再帰的に選択するにはどうすればよいですか?以下の記事では、CSS ...

Vueはドラッグアンドドロップまたはクリックで写真をアップロードする機能を実装しています

この記事では、ドラッグアンドドロップやクリックによる画像のアップロードを実現するためのVueの具体的...

Vueのフィルターについて知っておくべきこと

目次序文フィルターとは何かフィルターの使い方グローバルフィルターローカルフィルターフィルターは直列に...

強くお勧めします! Vue 3.2 でシンタックスシュガーを設定する

目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...

Nginx ポート競合を解決するトラブルシューティング方法の例

問題の説明データ転送に Nginx を使用し、フロントエンドとバックエンドが分離された Spring...

React Fragment の紹介と詳しい使い方

目次序文フラグメントの動機React Fragment の紹介と使用<React.Fragme...

抽選効果を実現するJavaScript

この記事では、宝くじマシンの効果を実現するためのJavaScriptの具体的なコードを参考までに共有...