Bir dosyayı bulmak ve ardından onu içeren dizini girmek istiyorum. Denedim find /media/storage -name "Fedora" | xargs cd
ama tabii ki is not a directory
hata.
Ü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 cd
muhtemelen çalışamaz. cd
yalnı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 find
yazdırma yolunda, kullanmadığınızdan beri xargs ile ayrılmış boşluklar varsa -d \n
. Veya find -exec {} \;
.
cd
. cd
yerleşik bir bash, eğer cd
ayrı 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).