私はいくつかの作業を行うために.shを書いていますが、今ではファイル/path/to/file.endがあるディレクトリにcdする必要があります。ターミナルでは許可されていません
cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory
悲しいことに、私が知っている回避策はないので、助けていただければ嬉しいです!
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`
ファイルにcd
することはできません。これは(コマンドライン) 関数 で、指定された完全修飾ファイルパスのパスに自動的にcd
されます。
function fcd () { [ -f "$1" ] && { cd "$(dirname "$1")"; } || { cd "$1"; } ; pwd; }
ファイル名に「/ ..」を追加すると、正しいディレクトリに移動します。 cd /path/to/file.end/..
。とにかくCygwinで動作します。