Bir dosyayı bulmak ve ardından onu içeren dizini girmek istiyorum. Denedim find /media/storage -name "Fedora" | xargs cdama tabii ki is not a directoryhata.
Üst dizinine bir satır komutuyla nasıl girebilirim?
shopt -s globstar, yapabilirsin cd /media/storage/**/Fedora, ama bu ilk maçta glob'u değerlendirmeyi bırakmaz (bu yüzden steeldriver'ın çözümünden daha yavaştır. Etkileşimli kullanım için normalde yaptığım şey fare için ulaşmak ve dizin adını kopyalamak / yapıştırmak, (ve alt + backspace, istemediğim sondaki yol bileşenlerini çıkarmak için gerektiği gibi), ancak bunu çok yaparsanız bir kabuk işlevi yapmaya değer olabilir sanırım.
xargs cdmuhtemelen çalışamaz. cdyalnızca bir kabuk yerleşimi olarak çalışabilir, çünkü kabuğun kendisini değiştirmek zorundadır. Bir xargsçocuk sürecinin bunu yapmasının bir yolu yoktur . "Elbette" ile kastettiğiniz şeyse IDK veya findyazdırma yolunda, kullanmadığınızdan beri xargs ile ayrılmış boşluklar varsa -d \n. Veya find -exec {} \;.
cd. cdyerleşik bir bash, eğer cdayrı bir komut olsaydı, o zaman (kendi) dir değiştirir ve sonra çıkar (sizi kabuğa geri döndürür, daha önce olduğu gibi aynı durumda, dir değişikliği yok).