ファイルを見つけて、それが含まれているディレクトリを入力します。試しましたfind /media/storage -name "Fedora" | xargs cdが、もちろんis not a directoryエラーです。
親ディレクトリを1行のコマンドで入力するにはどうすればよいですか?
shopt -s globstarを使用すると、を実行できますがcd /media/storage/**/Fedora、最初の一致でglobの評価が停止することはありません(したがって、steeldriverのソリューションよりも遅くなります。インタラクティブな使用の場合、私が通常行うことは、マウスを使ってディレクトリ名をコピーして貼り付け、 (とALT +バックスペース私はしたくなかった後続のパスコンポーネントを取り除くために、必要に応じて)いますが、これに多くを行う場合、私はシェル関数は価値が作ることができ推測する。
xargs cdおそらく動作しません。 cdシェル自体のコンテキストを変更する必要があるため、組み込みシェルとしてのみ機能します。方法はありませんxargs子プロセスはそれを行うことができますが。それが「もちろん」の意味である場合、またはfind印刷するパスにスペースが含まれている場合はIDKを使用します-d \n。スペースは、何も使用していないためxargsによって分割されます。またはfind -exec {} \;。
cdように実行することはできません。cd組み込みのbashであり、cd別のコマンドの場合は、dirを変更し(独自の)、終了します(シェルに戻ります。以前と同じ状態で、dirは変更されません)。