sh: 0: getcwd () không thành công: Không có tệp hoặc thư mục như vậy trên ổ đĩa được trích dẫn


210

Tôi đang cố gắng biên dịch mã ARM trong Ubuntu 12.

Mọi thứ đều hoạt động tốt khi tôi đặt mã vào thư mục cục bộ.

Nhưng khi tôi đặt mã trong thư mục mount trích dẫn xuất hiện:

making testXmlFiles
sh: 0: getcwd() failed: No such file or directory
ARM Compiling xxxxx.c
sh: 0: getcwd() failed: No such file or directory

Đây là thiết lập của tôi trong fstab

//10.0.0.1/data /mnt/data   cifs    auto,noserverino,credentials=/root/.smbcredentials,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm 0 0

Chuyện gì đang xảy ra ở đây? Điều gì có thể gây ra lỗi này?


Tôi đang thử trong Ubuntu 10.10, nó hoạt động tốt với cùng cấu hình.
CrazyKitty Rotoshi

49
Thông báo lỗi này có thể được kích hoạt khi cố gắng thực thi lệnh từ một đường dẫn không tồn tại (ví dụ: nếu quy trình B xóa thư mục mà quy trình A hiện đang nằm. Ví dụ thực tế: trong thiết bị đầu cuối A: mkdir ~/myfunnydir && cd ~/myfunnydirtrong thiết bị đầu cuối B: rm -rf ~/myfunnydirvà cuối cùng trở lại trong thiết bị đầu cuối A một lần nữa java --version:)
dbm

Thư mục của bạn được tự động gắn nhưng thông tin đăng nhập được lưu trữ trong /root. Một người dùng thông thường sẽ không thể gắn kết nó vì thông tin đăng nhập sẽ không thể đọc được đối với họ. Hãy thử làm cho nó không phải là tự động gắn kết và để root gắn kết nó.
giảm

Câu trả lời:


563

Lỗi này thường xảy ra do chạy lệnh từ thư mục không còn tồn tại.

Hãy thử thay đổi thư mục của bạn và chạy lại lệnh.


4
getcwdnhận được thư mục làm việc hiện tại và nếu thư mục bị xóa hoặc di chuyển, nó sẽ không vui! Xem Hướng dẫn sử dụng Linux cho getcwd
Hooman

2
Bạn thậm chí có thể phải làm điều này nếu bạn đã xóa thư mục bạn đang ở và tạo lại một thư mục ở cùng một nơi có cùng tên.
Jackson

hoàn toàn chính xác! đẹp!
farhad goodarzi

1
tất cả những gì tôi đã làm là nhấn cd, và chạy lại lệnh, và nó đã hoạt động, cảm ơn!
FreeSoftwareServers

Nhận thấy điều này khi chạy apt-get nâng cấp từ một thư mục không tồn tại. Tin nhắn spam khoảng 20 lần sau đó cập nhật tiếp tục như không có gì xảy ra. Tôi đã hy vọng tìm thấy thêm thông tin về lý do tại sao apt-get thậm chí quan tâm thư mục tôi đang sử dụng, đặc biệt là rất khăng khăng với rất ít hậu quả.
Darren Ringer

11

Hãy thử các lệnh sau, nó làm việc cho tôi.

cd; cd -

cái này là gì? waht có nghĩa là gì?
dılo sürücü

cd;thường sẽ đưa bạn đến thư mục chính và cd -đưa bạn trở lại thư mục bạn đã ở ngay trước thư mục hiện tại. Vì vậy, về cơ bản bạn đi đến thư mục nhà và trở lại. Tuy nhiên, nếu thư mục gốc mà bạn đang ở bị xóa, điều này sẽ không hoạt động.
Hooman

7

Điều đó cũng xảy ra với tôi trên một thư mục được tạo lại, thư mục này giống nhau nhưng để nó hoạt động trở lại, chỉ cần chạy:

cd .

6

Điều này có thể xảy ra với symlink đôi khi. Nếu bạn gặp vấn đề này và bạn biết bạn đang ở trong một thư mục hiện có, nhưng liên kết tượng trưng của bạn có thể đã thay đổi, bạn có thể sử dụng lệnh này:

cd $(pwd)

4

Trong Ubuntu 16.04.3 LTS, lệnh tiếp theo hoạt động với tôi:

exit

Sau đó tôi đã đăng nhập lại.


2
thực sự nó là đủ để chuyển sang một thư mục hiện có như Hooman đã nói trong câu trả lời
derHugo

2

Vui lòng kiểm tra đường dẫn thư mục có tồn tại hay không. Lỗi này xuất hiện nếu thư mục không tồn tại từ nơi bạn đang chạy lệnh. Có lẽ bạn đã thực hiện một lệnh remove từ cùng một đường dẫn trong dòng lệnh.


1
Đó là những gì Hooman đã nói trong câu trả lời của mình
derHugo

0

Trong trường hợp của tôi không có gì ở trên đã làm việc. Sau khi đập đầu vào tường một lúc, tôi phát hiện ra rằng tôi đã phá hủy các /etc/passwdmục bằng cách chạy một tập lệnh tùy chỉnh-linux-server-setup-bash-script hoạt động tốt trước đó, nhưng lần này là regex bên trong lệnh "sed" đã xóa tất cả các mục hiện có: D Sau khi sao chép dán các mục mặc định từ một máy chủ linux đang hoạt động khác, cuối cùng tôi cũng có thể khởi động lại sshd.

Vì vậy, đừng quên sao lưu /etc/passwdtệp gốc trước khi áp dụng bất kỳ thay thế regex nào trên đó :)


-8

Ngay cả tôi cũng gặp vấn đề tương tự với python virtualenv Nó đã được sửa bằng cách khởi động lại đơn giản

sudo shutdown -r now

4
thực ra nó là đủ để chuyển sang một thư mục hiện có như Hooman đã nói trong câu trả lời của anh ấy từ lâu rồi ...
derHugo
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.