ファイルの絶対パスから最も深いディレクトリにCDを移動する最も簡単な方法は何ですか?

ファイルの絶対パスから最も深いディレクトリにCDを移動する最も簡単な方法は何ですか?

たとえば、私のクリップボードに次のものがあるとします。

/Users/matt/widgets/file.txt

ディレクトリを次に変更したいと思います。

/Users/matt/widgets

cd動作しません:

$ cd /Users/matt/widgets/file.txt
bash: cd: /Users/matt/widgets/file.txt: Not a directory

これをより簡単にするために、どのような簡単な(つまり、入力しやすい)変更を加えることができますか?

答え1

後続の実行をより簡単にするためにタスクを事前にロードすることに同意する場合は、関数を作成できます(貴重な意味のある命名)。

function cdfile { cd -- "$(dirname $1)"; }

これらの定義を~/.bashrcファイルに保存します。その後、必要なファイルパスがあるたびに次のことがcdできます。

cdfile <paste path>

答え2

ディレクトリ名の使用:

cd "$(dirname /Users/matt/widgets/file.txt)"

答え3

cd $(dirname /Users/matt/widgets/file.txt)

関連情報