ファイル マネージャーが KDE の Dolphin、GNOME の Files、または代替のいずれであっても、ファイル マネージャーはおそらくワークフローの重要な部分であり、ファイルの移動や整理に毎日使用されます。ただし、Linux ユーザーは、GUI デスクトップが存在するずっと前から、何十年もの間、これらのタスクを実行してきました。
では、GUI ファイル マネージャーを完全に回避するにはどうすればよいでしょうか?調べてみましょう…
機能する標準コマンド
Linux の組み込みコマンドは強力で便利です
まず、ファイルマネージャーとは何なのかを正確に考えてみましょう。ファイルマネージャーは、ファイルやフォルダー(ディレクトリ)を管理するためのインターフェースです。最も一般的な操作には次のものがあります。
-
ファイルを表示する
-
ファイルを作成する
-
ファイルを開く
-
ファイルの名前を変更する
-
ファイルを移動する
-
ファイルをコピーする
-
ファイルを削除する
-
ファイルを検索する
ありがたいことに、これらはすべて組み込みのコマンドライン ツールで実行でき、その多くは何世代にもわたってその役割を担ってきました。
ls を使用してディレクトリの内容を表示する
ls コマンドを使用すると、ファイルとディレクトリを一覧表示できます。
このプログラムは、出力を制御するための多くのオプションをサポートしており、シェルのグロビング機能を使用して、リストするファイルをフィルタリングできます。たとえば、ファイル タイプを示す末尾の文字を付けて、少なくとも 1 つの数字を含むすべてのファイルとディレクトリを一覧表示するには、次のコマンドを使用します。
ls -dF *(0-9)*
touchでファイルを作成するか、mkdirでディレクトリを作成します
touch は「ファイルのアクセスと変更時間を変更する」ツールとして説明されていますが、新しいファイルを作成するという優れた機能も備えています。
touch ./my-new-file.md
実際、空のファイルを作成する方法は他にもたくさんありますが、そのほとんどはファイル マネージャーとは関係ありません。 mkdir コマンドを使用すると、ディレクトリの作成も簡単です。
mkdir -p my/new/directory
-p オプションを使用すると、複数のレベルのディレクトリを一度に作成できます。
open または xdg-open でファイルを開きます
コマンドラインから Linux ファイルを開く最良の方法は、xdg-open です。このコマンドは、GUI ファイル マネージャーでファイルをダブルクリックする行為をエミュレートします。デスクトップのデフォルト アプリケーションを使用してファイルが開きます。
macOS では、非常によく似たコマンドを使用できますが、単に open と呼ばれます。
mv を使用してファイルまたはディレクトリの名前を変更または移動する
ここでは、ファイルの名前変更と移動という 2 つの個別の GUI 機能を 1 つのターミナル コマンドで置き換える例を示します。どちらのアクションもファイルの絶対パス名を変更するため、Linux には mv という単一のコマンドがあります。
mv old-file.txt file-with-a-new-name.md
mv /a/file/from/over/there/foo.txt ./here/
cp を使用してファイルまたはディレクトリをコピーする
ファイルのコピーは、ソース引数と宛先引数を指定して cp コマンドを使用するのと同じくらい簡単です。
cp ./from/file1.txt ./to/file2.txt
ただし、ディレクトリをコピーしようとするとエラーが発生します。これを回避するには、-r オプションを使用します。
rm でファイルを削除するか、rmdir でディレクトリを削除する
コマンドラインではこれを「削除」と呼び、rm コマンドはファイルを削除します。繰り返しますが、rmdir と呼ばれるディレクトリ固有の同等の機能がありますが、これは空のディレクトリのみを削除します。
すべてのコンテンツを含む完全なディレクトリを削除するには、次を使用します。 rm -rただし、十分に注意してください。
find でファイルまたはディレクトリを検索する
find コマンドは強力な機能で、GUI で利用できる一般的な検索よりもはるかに優れた機能を備えています。ファイルやディレクトリを検索できますが、大規模なフィルターやアクションもサポートしているため、次のような複雑な検索を構築できます。
find . -path "*/.*/*" -prune -o -user "${USER}" -type f -printf "%TY-%Tm-%Td %p\n"
このコマンドは、隠しディレクトリにない、現在のユーザーが所有する通常のファイルをすべて検索し、最終変更時刻とともにそれらを出力します。
基礎を超えたその他のプログラム
組み込みコマンドを改善するための最新の代替手段が存在します
通常、これらのプログラムをインストールする必要があるため、信頼するのが難しい場合があります。ただし、特に初心者にとって、端末エクスペリエンスをアップグレードするのに役立ちます。
色や追加機能には ls の代わりに eza を使用してください
eza プログラムは、Rust 言語で書かれた ls の最新の代替プログラムです。グリッド、テーブル、ツリーの出力スタイルをサポートし、色を広範囲に使用します。このツールは git とも統合されており、リポジトリ内のファイルの現在のステータスを表示します。
mv の代わりに名前変更を使用する
シェルスクリプト作成の達人であれば、グロビングとパラメータ置換を使用してファイルの名前をバッチ変更するのが簡単であることに気づくかもしれません。ただし、他の人のために、正規表現を使用してより複雑な名前変更タスクを実行できる rename コマンドがあります。
たとえば、現在のディレクトリ内のすべてのテキスト ファイルから「NEW_」プレフィックスを削除するには、次のコマンドを使用します。
rename 's/NEW_//' *.txt
rm の代わりにゴミ箱を使用する
rm コマンドは非常に単一的かつ効率的であるため、危険を伴う可能性があります。絶対に実行してはいけないこの古典的な「落とし穴」コマンドほどリスクを端的に表しているものはありません。
rm -rf /
もちろんこれは極端ですが、このコマンドはバックアップのないファイルを即座に削除するため、通常の rm 実行でも間違いが発生する可能性があります。安心して使えるように、macOS ではtrash コマンドを使用し、Linux ではtrash-put (trash-cli パッケージから) を使用できます。このコマンドはデスクトップのゴミ箱を模倣しており、同じメカニズムを使用してファイルを回復できます。
find の代わりに fd を使用する
find コマンドは、学習する必要がある最も複雑なコマンドの 1 つであるため、代替手段がたくさんあるのも当然です。 fd はおそらく最も人気があり、確かに find よりもはるかに使いやすいです。
本当に必要な場合の TUI
このコマンド ライン アクションをすべて実行した後、GUI の機能の一部が不足している場合は、TUI ファイル マネージャーを試してみてください。これらの対話型ツールは、端末の範囲内で GUI を模倣するように設計されています。
最もUNIXらしい雰囲気を味わうために
nnn は GUI とコマンドラインの間の優れた妥協点であり、キーボードまたはマウスでナビゲートできる対話型のファイル リストを提供します。
まだほぼ完全にテキストベースであり、色やフォント スタイルの使用は最小限に抑えられています。ブラウジングは簡単ですが、ファイルのコピーなどの単純なタスクでもキーボード ショートカットを学ぶ必要があります。
もう少し GUI に近いものについては
Midnight Commander (mc) は象徴的なデュアルペイン ディスプレイを使用しており、コマンド ラインと GUI ファイル マネージャーの間の大きなギャップを埋めるのに役立ちます。これにより、2 つの異なる場所間でファイルを簡単に移動またはコピーできます。
Linux が利用できる多くのオプションを使用する
それぞれに利点があるため、1 種類のインターフェイスだけに固執する必要はありません。コマンド ラインは非常に強力であるため、コマンド ラインを使用しない場合にかかる時間のほんの一部で複雑なタスクを解決できます。ただし、GUI は非常に便利で、ファイルをすばやく転送する場合は、GUI のほうが速い場合もあります。
ボックス内の各ツールが何に適しているかを確認し、最大の結果を得るためにそれらを組み合わせる方法を学びましょう。