Tại sao BASH in ấn bash: cd: write error: Thành công?


12

Tôi nhận thấy điều này nhiều lần trong ngày hôm nay. Nếu tôi gõ cd ../Directoryđể thay đổi sang thư mục khác, nó sẽ in "bash: cd: write error: Thành công". Tôi không thể xác định những lệnh trước nào khác có thể liên quan đến điều này.

  • typeset -f không in gì cả.
  • alias không in gì cả.
  • type -a cd in "cd là một vỏ dựng sẵn".
  • echo $CDPATH in một dòng trống.
  • $BASH_VERSION in "bash: 4.2.37 (1) -release: không tìm thấy lệnh".
  • Tôi chỉ nhận thấy điều này 2-3 lần. Thư mục ban đầu và thư mục đích giống hệt nhau trong cả hai tình huống. Tôi đã thay đổi thư mục theo cách này nhiều lần, nhưng không gặp phải lỗi luôn.

Điều gì có thể gây ra điều này?


Vui lòng thêm đầu ra type -a cdnhư Glenn yêu cầu.
terdon

Vui lòng thêm đầu ra của typelệnh vào câu hỏi của bạn. Ngoài ra, điều này có xảy ra trong tất cả các thư mục hoặc chỉ khi bạn ở trong một (các) cụ thể? Và đầu ra của là echo $CDPATHgì?
terdon

Phiên bản bash chính xác nào (trong $BASH_VERSION) bạn đang chạy?
Gabe

Tôi có bash 4.2.37(1).
Làng

Câu trả lời:


6

Có lẽ là một lỗi?

Điều này nghe có vẻ như một lỗi tiềm năng. Tôi tìm thấy một báo cáo tương tự hiển thị cùng một thông điệp. Lỗi bash: pwd dựng sẵn thoát với lỗi ghi: Thành công .

đoạn trích

Thông báo này sẽ được hiển thị nếu ferror (stdout) trả về khác không. Vì một số lý do (có thể là cuộc gọi fflush () ngay trước kiểm tra), stdio đang khiến ferror () trả về true mà không đặt errno.

Điều này xảy ra hai lần liên tiếp? Nội dung dựng sẵn pwd gọi Clearerr () sau khi in thông báo lỗi, vì vậy ngay cả khi cờ lỗi xuất hiện 'gậy', điều đó sẽ xóa nó.

Không thể cập nhật lịch sử?

Lỗi này khiến tôi nghĩ rằng nó đã thành công trong việc thay đổi thư mục, nhưng không thể viết lệnh cd ../Directorycho bạn $HOME/.bash_history. Tôi xác nhận rằng tập tin này còn nguyên vẹn và có thể ghi. Cũng xác nhận rằng $HOMEthư mục của bạn có thể ghi và không đầy đủ.

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

Các /homephân vùng có nhiều không gian có sẵn. Tôi không thể tìm thấy bất cứ điều gì lạ trong ".bash_history", nó được đặt thành chỉ đọc và viết cho chủ sở hữu. Bất cứ khi nào tôi thoát khỏi một thiết bị đầu cuối, dữ liệu từ thiết bị đầu cuối đó vẫn còn ở đó. Có thể điều này xuất hiện bởi vì tôi đang chạy nhiều cửa sổ đầu cuối cùng một lúc?
Làng

@Village - có lẽ, nhưng mỗi khi một lệnh được chạy trong shell, nó sẽ có một khóa trên tệp lịch sử và phát hành khi hoàn thành, mọi quá trình khác làm tương tự sẽ chỉ chờ.
slm

Bash không ghi vào ~/.bash_historyngay sau khi chạy lệnh, nhưng sau khi phiên đóng cửa, phải không?
SOFe

@Pemapmodder - chính xác, không rõ ràng với tôi nếu OP đã làm một cái gì đó như thế này: Askubfox.com/questions/67283/ Lỗi .
slm

Tôi đã gặp phải cùng một vấn đề và tôi khá chắc chắn rằng đó không phải là sự thật (vì su rootlúc đó tôi đang ở đó và tôi ngay lập tức tail /root/.bash_historyvà không thấy gì liên quan, sau đó exitquay lại với người dùng bình thường của tôi, sau đó sudo tail /root/.bash_history, và cả dòng (cả hai dòng, kể từ khi tôi lặp lại cd) thực sự đã được viết.
SOFe 20/03/2016

3

Lệnh cd của bạn là bí danh hoặc rất có thể là hàm bash.

typeset -f  # displays functions
alias       # display aliases

Nếu không tìm thấy với các lệnh trên which cdsẽ xác định vị trí đường dẫn của cdlệnh.

Hãy tìm những cdnét bí danh hoặc chức năng trong các kịch bản khởi động bình thường .bash_profile, .bashrc.profile.


typeset -f, aliaswhich cdtất cả không trả về gì cả, và các tệp khác chỉ chứa PATH=~/.context/tex/texmf-linux/bin/:$PATH.
Làng

2
sử dụngtype -a cd
glenn jackman

1
type -a cdin "cd là một vỏ dựng sẵn".
Làng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.