ファイルを見つけて、それが含まれているディレクトリを入力します。試しました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は変更されません)。