LinuxおよびmacOSでfdを使用してファイルをすばやく検索する方法
fdは、findコマンドのより簡単な代替手段です。切り捨てられた構文と省略されたコマンド構造を使用して、入力したコマンドを簡潔かつ的確に保ちます。ただし、fdの入力を容易にする冗長性の欠如により、理解がより困難になります。 fdは、デフォルトのfindコマンドよりも高速にパターンマッチングも実行します。 LinuxとmacOSでfdを使用する方法を学びます。
Linuxにfdをインストールする
fdは、デフォルトでは多くのシステムに出荷されていません。好みのパッケージマネージャーを使用してアプリケーションをダウンロードしてインストールする必要があります。そうすれば、ターミナル内から実行できます。
Ubuntu
Ubuntu Disco Dingo 19.04に同梱されますが、それ以外の場合はダウンロードしてインストールする必要があります。 Ubuntuおよびその他のDebianベースのLinuxディストリビューションの場合、次のコマンドを実行してプログラムをダウンロードおよびインストールする必要があります。
wget https://github.com/sharkdp/fd/releases/download/v7.3.0/fd-musl_7.3.0_amd64.deb sudo dpkg -i fd-musl_7.3.0_amd64.deb
32ビットバージョンまたは別のビルドが必要な場合は、fdのGitHubリリースページからダウンロードしてください。
Debian
Debian Buster以降では、Debianが管理する公式リポジトリからfdをインストールできます。
sudo apt-get install fd-find
Fedora
Fedora 28以降、fdは公式パッケージバージョンからインストールできます。
dnf install fd-find
Arch Linux
同様に、Archユーザーは公式リポジトリからfdを取得できます:
pacman -S fd
Gentoo Linux
Gentooユーザーは、次のコマンドを使用してfdebuildをダウンロードできます。
emerge -av fd
macOS
macOSを実行している場合は、Homebrewをインストールしてから、以下のコマンドを使用してfdをインストールします。
brew install fd
Linuxでのfdの使用
fdコマンドの基本構造はfdpattern
findと比較。 -iname'パターン'
。
名前でファイルを検索するには、次のコマンドを使用します。
fd filename
これは、サブディレクトリを含む、事前設定された作業ディレクトリ内を検索します。特定のディレクトリ内を検索するには、検索語の後にそれを指定します:
fd filename /path/to/search
結果に対するコマンドの実行
findと同様に、fdには、見つかったファイルを別のコマンドに渡して実行する機能があります。 findはfindを使用します。 -inamepattern-execコマンド
、fdは -x
を使用します フラグ:
fd -e zip -x unzip
このコマンドは、ディレクトリ内のすべてのzipファイルをunzipコマンドに送信します。 executeコマンドの「フレーズ」内で次の記号を使用して、特定の方法で情報を渡すことができます。
-
{}
:プレースホルダーは検索結果のパス(files / images / portal.jpg
)に置き換えられます 。 -
{/}
:結果のファイル名のみに置き換えられるプレースホルダー。UNIX愛好家にはベース名(portrait.jpg
として知られています) 。 -
{//}
:プレースホルダーが見つかったアイテムの親ディレクトリに置き換えられました(files / images
。 {。}
:プレースホルダーは、拡張子なしのファイル名へのパスに置き換えられました(files / images / portal
。{/。}
:プレースホルダーは、拡張子なしで、見つかったアイテムのベース名に置き換えられました(portal
。
上記のプレースホルダー記号を2つ使用して、次の例を検討してください。
fd -e flac -x ffmpeg -i {} -c:a libopus {.}.opus
その他の便利なfdフラグ
-
-e
:ファイルの拡張子のみを検索し、ドットを区切ることはありません。 -Eパターン
:次のパターンに一致する結果を除外します。-
-changed-newer-than date | duration
:ファイルの変更からの時間に基づいて結果をフィルタリングします。これにより、変更日が指定日より後のファイルのみが表示されます。時間には、現在の瞬間から逆方向にカウントする期間を指定できます(10h
、1d
、35分コード> )または特定の時間に設定できます(
"YYYY-MM-DD HH:MM:SS"
。 - –changed-older-than date | duration :–change-newerと同様ですが、指定された日付または期間より前に編集されたファイルが表示されます。後ではありません。
-
-t
:指定されたタイプのファイルのみを表示します(ファイルの場合は-tf、ディレクトリの場合は-td、実行可能ファイルの場合は-tx、シンボリックリンクの場合は-tl、空のファイルの場合は-te)。 -
-p
:ファイル名だけでなく、パス名全体を検索します。 -
-s
:大文字と小文字の区別を強制します。デフォルトでは、検索パターンに大文字が入力されていない限り、fdは大文字と小文字を無視します。 -
-H
:結果内に隠しファイルと隠しディレクトリを表示します。 -
-L
:シンボリックリンクされたディレクトリへのリンクをたどります。
fdは、findコマンドの優れた代替手段です。 「find」コマンドを使用するのが難しいという経験がある場合は、fdを使用した方が幸運かもしれません。試してみて、役立つかどうかお知らせください。
-
検索コマンドを使用してLinuxでファイルを検索する方法
Linuxのfind コマンドは、Linuxシステムで最も重要で便利なコマンドの1つです。名前が示すように、設定した条件や変数に基づいて、LinuxPC上のファイルを見つけることができます。 findを使用して、権限、ユーザー、グループ、ファイルタイプ、日付、サイズ、およびその他の可能な基準でファイルを検索できます。 指図。ここでは、findを使用してLinuxでファイルを検索する方法を示します。 コマンド。 find コマンドはデフォルトでほとんどのLinuxディストリビューションで使用できるため、パッケージをインストールする必要はありません。 現在のディレクトリで名前でファイルを検索
-
LinuxでTeeコマンドを使用する方法
Linuxシェルでパイプとリダイレクトを使用したことがある場合は、teeを使用する必要がある場合もあります。 ユーティリティ。 ティーは何をしますか? などのコマンド ls 現在のディレクトリの内容が表示されます。つまり、これらのコンテンツをstdout(標準出力)(通常は画面)、より正確には仮想端末ディスプレイに表示します。 のようなコマンド ls > file123 画面には何も表示されません。 signは、すべての出力をstdoutに表示するのではなく、ファイルにリダイレクトします。 file123には、以前に画面に表示されていたコンテンツが入力されます。 ディレクトリ