web-dev-qa-db-ja.com

cdを使用してファイルの親ディレクトリに移動しますか?

私はいくつかの作業を行うために.shを書いていますが、今ではファイル/path/to/file.endがあるディレクトリにcdする必要があります。ターミナルでは許可されていません

cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory

悲しいことに、私が知っている回避策はないので、助けていただければ嬉しいです!

9
Azsgy

cd $( dirname /path/to/file.end)と入力します。 /path/toに移動します。

説明:

  • dirnameは、ファイルの完全なパスを返します(basenameで取得するファイル名なし)-つまり、dirname /etc/apt/apt.conf.d/99update-notifier/etc/apt/apt.conf.dを返します
  • $(anything)は、括弧内のコマンドの結果に置き換えられます。 cd $( dirname /etc/apt/apt.conf.d/99update-notifier)cd /etc/apt/apt.conf.dとして実行されます

同じための別の(しかし古いものと落胆した)表記法は

cd `dirname /path/to/file.end` 
10
guntbert

ファイルにcdすることはできません。これは(コマンドライン) 関数 で、指定された完全修飾ファイルパスのパスに自動的にcdされます。

function fcd () { [ -f "$1" ] && { cd "$(dirname "$1")"; } || { cd "$1"; } ; pwd; }
7
Rinzwind

ファイル名に「/ ..」を追加すると、正しいディレクトリに移動します。 cd /path/to/file.end/..。とにかくCygwinで動作します。

1
brain