私はこの機能を持っており、定期的に使用していて、とても素敵に動作します。
ここにいる:
cdx () { cd `dirname $1` ; }
しかし、スペースでは動作しません。このように使ってみると
cdx ~/desktop/folder/file\ file
それは戻ってくる
usage: dirname path
しかし、私が渡したいのは本質的にdirname path
。では、この問題を解決するにはどうすればよいですか? (フォルダ名にスペースがある場合も同様です。)
私の最初の考えは引用符を使用することでしたが、 cdX "directory\ whatever"
それも機能しませんでした。
答え1
簡単に書くと、$i
空白は変数の内容を複数の引数に変換します。スペースを維持するには、何かを引用する必要があります。
たとえば、次のことができます。
cdx () { cd -- "$(dirname -- "$1")" ; }
そして覚えていつも変数を参照してください。