Apa yang dapat menyebabkan sentuhan gagal dengan pesan kesalahan ini?
touch: cannot touch `foo': No such file or directory
Perhatikan bahwa kesalahan karena izin yang salah terlihat berbeda:
touch: cannot touch `foo': Permission denied
Apa yang dapat menyebabkan sentuhan gagal dengan pesan kesalahan ini?
touch: cannot touch `foo': No such file or directory
Perhatikan bahwa kesalahan karena izin yang salah terlihat berbeda:
touch: cannot touch `foo': Permission denied
Jawaban:
Urutan berikut menyebabkan pesan kesalahan ini:
$ mkdir foo
$ cd foo
Di terminal lain:
$ rm -r foo
Di terminal sebelumnya:
$ touch x
touch: cannot touch `x': No such file or directory
Tentu saja, peristiwa lain yang juga mengakibatkan membatalkan direktori kerja saat ini (CWD) dari suatu proses yang mencoba membuat file di sana juga menghasilkan pesan kesalahan ini.
rmdir ../foo
di terminal yang sama harus berfungsi. Kemungkinan lain tanpa nakal filesystem: ln -s directory-that-doesnt-exist/foo foo; touch foo
.
Bagi saya itu mencoba menulis ke symlink yang menunjuk ke file yang sudah tidak ada lagi:
$ ln -s ~/doomed/file ~/mysymlink
$ rm ~/doomed/file
$ touch ~/mysymlink
$ touch: cannot touch `mysymlink': No such file or directory
Mungkin ini akan membantu seseorang di masa depan:
Saya mendapat masalah yang sama ketika saya menghapus satu-satunya file yang ada di folder saya dengan git rm
. Maka git menghapus folder tempat saya dulu, dan setiap upaya untuk membuat file memicu kesalahan ini karena folder itu tidak ada lagi. Jadi saya harus membuat ulang folder secara manual, masuk ke dalamnya dan jalankan touch
perintah dengan sukses.