BASH neden “bash: cd: yazma hatası: Başarılı” yazdı?


12

Bunu bugün birkaç kez fark ettim. Ben yazarsanız cd ../Directory": cd: bash yazma hatası: Başarı" başka bir dizine değiştirmek için, bu yazdırır. Bununla ilgili önceki komutların neler olabileceğini belirleyemiyorum.

  • typeset -f hiçbir şey yazdırmaz.
  • alias hiçbir şey yazdırmaz.
  • type -a cd "cd bir kabuk yerleşiktir" yazdırır.
  • echo $CDPATH boş bir satır yazdırır.
  • $BASH_VERSION "bash: 4.2.37 (1) -release: komut bulunamadı" yazdırır.
  • Bunu sadece 2-3 kez fark ettim. İlk dizin ve hedef dizin her iki durumda da aynıydı. Dizinleri birçok kez bu şekilde değiştirdim, ancak her zaman hatayla karşılaşmadım.

Buna ne sebep olabilir?


Lütfen çıkışını type -a cdGlenn'in istediği gibi ekleyin .
terdon

Lütfen typekomutun çıktısını sorunuza ekleyin. Ayrıca, bu tüm dizinlerde mi yoksa yalnızca belirli bir klasörde mi oluyor? Ve çıktısı echo $CDPATHnedir?
terdon

Hangi tam bash sürümünü (in $BASH_VERSION) çalıştırıyorsunuz?
Gabe

Ben var bash 4.2.37(1).
Köy

Yanıtlar:


6

Belki bir hata?

Bu potansiyel bir hata gibi geliyor. Aynı mesajı gösteren benzer bir rapor buldum. Hata bash: pwd yerleşik yazma hatasıyla çıkar: Başarılı .

alıntı

Ferror (stdout) sıfırdan farklı bir değer döndürürse bu mesaj görüntülenir. Herhangi bir nedenle (muhtemelen kontrolün hemen önündeki fflush () çağrısı), stdio, ferr () işlevinin errno ayarlanmadan true değerine dönmesine neden oluyor.

Bu arka arkaya iki kez olur mu? Hata mesajını yazdırdıktan sonra pwd yerleşiği clearerr () öğesini çağırır, bu nedenle stdout hata bayrağı `` yapışmış '' olsa bile, bunu temizlemelidir.

Geçmiş güncellenemiyor mu?

Hata, dizinleri değiştirmede başarılı olduğunu düşündürdü, ancak komutu cd ../Directorysizin için yazamadı $HOME/.bash_history. Bu dosyanın sağlam ve yazılabilir olduğunu onaylarım. Ayrıca $HOMEdizininizin yazılabilir olduğunu ve dolu olmadığını da doğrulayın .

$ df -h $HOME
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  157G  225G  42% /home

/homeBölüm kadar alan mevcut bulunmaktadır. ".Bash_history" içinde garip bir şey bulamıyorum, sadece sahibi için okuma ve yazma ayarlanmıştır. Ne zaman bir terminalden çıksam, o terminalden gelen veriler oraya gider. Aynı anda birden fazla terminal penceresi çalıştırdığım için bu mümkün mü?
Köy

@Village - belki, ama bir komut bir kabukta her çalıştırıldığında, geçmiş dosyasında bir kilit almalı ve bittiğinde serbest bırakılmalıdır, aynısını yapan diğer tüm işlemler sadece beklerdi.
slm

bash ~/.bash_historykomutu çalıştırdıktan hemen sonra yazmaz , ancak oturum kapatıldıktan sonra yazmaz , değil mi?
SOFe

@Pemapmodder - doğru, OP'nin böyle bir şey yapıp yapmadığı bana açık değildi: askubuntu.com/questions/67283/… .
slm

Aynı sorunla karşılaştım ve bunun doğru olmadığından eminim (çünkü su rooto sıradaydım tail /root/.bash_historyve anında ilgili hiçbir şey görmedim, sonra exitnormal kullanıcıma, o zaman sudo tail /root/.bash_historyve çizgiye (her iki satır, tekrarladığımdan beri cd) gerçekten yazılmıştır.
SOFe

3

Cd komutunuz bir takma ad veya büyük olasılıkla bir bash işlevidir.

typeset -f  # displays functions
alias       # display aliases

Yukarıdaki komutlarla bulunmazsa which cd, cdkomutun yolunu bulur .

Arayın cdNormal başlangıç komut diğer adı veya fonksiyon tanımı .bash_profile, .bashrcve .profile.


typeset -f,, aliasve which cdtümü hiçbir şey döndürmez ve diğer dosyalar yalnızca içerir PATH=~/.context/tex/texmf-linux/bin/:$PATH.
Köy

2
kullanımtype -a cd
glenn jackman

1
type -a cd"cd bir kabuk yerleşiktir" yazdırır.
Köy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.