d - ディレクトリ移動支援ツール
概要
d は、ターミナル内でディレクトリ一覧をページ表示して、番号選択で目的のディレクトリへ移動できるシンプルな支援ツールです。1ページあたり10件の表示が基本で、n / p キーで次ページ/前ページを切り替え、数字入力でその項目へジャンプします。親ディレクトリは ”..” として特別に表示され、Enter キーでスクリプトを終了します。大量のフォルダを持つディレクトリで目的の作業フォルダを素早く見つけたい開発者や運用担当者に向くツールで、Linux の Bash を前提に設計されています。セットアップは提供される set.sh を実行するだけで簡単に導入できます。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 5
- ファイル数: 5
- メインの言語: Shell
主な特徴
- ページ切り替え表示(デフォルト10件/ページ)で大量フォルダを閲覧しやすい
- キー操作でナビゲーション:n(次ページ)、p(前ページ)、数字で選択
- 数字選択で即座にそのディレクトリへ移動(シェルに組み込む工夫あり)
- 簡易インストーラ(set.sh)で Bash に導入可能、追加依存が少ない
技術的なポイント
d はシェル(Bash)スクリプトだけで完結する軽量実装を目指しています。実装上の要点として、ディレクトリ一覧の取得とページングのロジック、ユーザー入力のノンバッファ読み取り、そして選択されたディレクトリへ「親シェル」で移動するための設計が挙げられます。通常、子シェルで cd を実行しても親シェルの作業ディレクトリは変わらないため、インストールスクリプト(set.sh)は d を単体スクリプトとして置くのではなく、シェル関数として ~/.bashrc 等に定義するか、スクリプトを source して動作するようにする工夫が想定されます。ページングは配列やループでディレクトリ名を保持し、1ページあたりの表示数(デフォルト10)ごとに offset を管理して n/p でインデックスを更新する単純なアルゴリズムが使われます。ユーザー入力は read -n 1 や stty -echo などを用いて1文字または改行を検出し、数字入力時は複数桁の数値をまとめて読み取る処理が実装されている可能性があります。表示面では printf や echo を組み合わせて番号付きリストを整形し、”.. (parent)” を先頭に表示することで親ディレクトリの選択を明確にしています。パフォーマンス上の配慮としては、find や ls を用いた一覧取得で余計なサブツリー走査を避け、-maxdepth オプションや type テスト(-type d)で対象を限定する実装が一般的です。セキュリティ面ではセットアップが curl | bash 形式で配布されているため、初回実行前に set.sh の中身を確認することを推奨します。将来的な拡張案として、fzf との統合、zsh 対応、ページサイズの環境変数化、結果のソートやフィルタリング機能の追加などが考えられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- CNAME: file
- README.md: file
- d.sh: file
- index.html: file
- set.sh: file
まとめ
軽量なシェル実装で手早く導入できるディレクトリ移動支援ツール。多数フォルダの探索を効率化する実用的なユーティリティです(要 Bash)。
リポジトリ情報:
- 名前: d
- 説明: ディレクトリ移動支援ソフト
- スター数: 1
- 言語: Shell
- URL: https://github.com/TeamKOTOCA/d
- オーナー: TeamKOTOCA
- アバター: https://avatars.githubusercontent.com/u/212085871?v=4
READMEの抜粋:
d - ディレクトリ移動支援ソフト
d は、ターミナル上で簡単にディレクトリを一覧表示し、ページごとに移動できる便利なシェルスクリプトベースのソフトウェアです。
特に大量のフォルダがあるディレクトリでの移動操作を効率化します。
概要
- ディレクトリをページ単位で表示(1ページあたり10件)
n/pで次ページ・前ページに移動- 数字を入力するとそのディレクトリに移動
Enterでスクリプトを終了..は親ディレクトリとして特別表示
動作環境
- Linux
- Bash
インストール
以下のコマンドでセットアップが可能です。set.sh を直接ダウンロードして実行する形です:
# インストールスクリプトを直接取得して実行
curl -fsSL https://d.kotoca.net/set.sh | bash
# 変更を反映
source ~/.bashrc...