สิ่งที่อาจทำให้เกิดการสัมผัสล้มเหลวพร้อมกับข้อความแสดงข้อผิดพลาดนี้?
touch: cannot touch `foo': No such file or directory
โปรดทราบว่าข้อผิดพลาดเนื่องจากการอนุญาตที่ไม่ถูกต้องมีลักษณะแตกต่างกัน:
touch: cannot touch `foo': Permission denied
สิ่งที่อาจทำให้เกิดการสัมผัสล้มเหลวพร้อมกับข้อความแสดงข้อผิดพลาดนี้?
touch: cannot touch `foo': No such file or directory
โปรดทราบว่าข้อผิดพลาดเนื่องจากการอนุญาตที่ไม่ถูกต้องมีลักษณะแตกต่างกัน:
touch: cannot touch `foo': Permission denied
คำตอบ:
ลำดับต่อไปนี้ทำให้เกิดข้อผิดพลาดนี้:
$ mkdir foo
$ cd foo
ในเทอร์มินัลอื่น:
$ rm -r foo
ในเทอร์มินัลก่อนหน้า:
$ touch x
touch: cannot touch `x': No such file or directory
แน่นอนว่าเหตุการณ์อื่น ๆ ที่ทำให้ไดเรกทอรีการทำงานปัจจุบัน (CWD) ของกระบวนการที่พยายามสร้างไฟล์นั้นมีผลทำให้ข้อความแสดงข้อผิดพลาดนี้เสียหาย
rmdir ../foo
ในเทอร์มินัลเดียวกันควรใช้งานได้ เป็นไปได้อีกโดยไม่ต้องทำงานไม่ ln -s directory-that-doesnt-exist/foo foo; touch foo
filesystems:
สำหรับฉันแล้วฉันพยายามเขียนถึง symlink ที่ชี้ไปยังไฟล์ที่ไม่มีอยู่อีกต่อไป:
$ ln -s ~/doomed/file ~/mysymlink
$ rm ~/doomed/file
$ touch ~/mysymlink
$ touch: cannot touch `mysymlink': No such file or directory
อีกวิธีที่ง่ายกว่าในการทริกเกอร์ข้อความ:
$ mkdir foo
$ touch foo/bar/baz.txt
touch: cannot touch 'foo/bar/baz.txt': No such file or directory
โดยทั่วไปพยายามสร้างไฟล์ในโฟลเดอร์ที่ไม่มีอยู่จริง
บางทีนี่อาจช่วยคนในอนาคต:
git rm
ผมได้รับปัญหาเดียวกันนี้เมื่อฉันออกเฉพาะไฟล์ที่มีอยู่ในโฟลเดอร์ของฉันด้วย คอมไพล์จึงลบโฟลเดอร์ที่ฉันเป็นอยู่และความพยายามใด ๆ ในการสร้างไฟล์จะทำให้เกิดข้อผิดพลาดนี้เนื่องจากโฟลเดอร์นั้นไม่มีอยู่อีกต่อไป ดังนั้นฉันต้องสร้างโฟลเดอร์ใหม่ด้วยตนเองเข้าไปในนั้นและรันtouch
คำสั่งได้สำเร็จ