คุณตรวจสอบว่ามีไฟล์หรือไดเรกทอรีอยู่บนระบบ Linux หรือไม่โดยใช้ปุ่ม test คำสั่งในทุบตี ดูตัวอย่างด้านล่างเพื่อดูวิธีการ
การทดสอบ ไวยากรณ์คำสั่ง
test EXPRESSION
คำสั่งทดสอบจะประเมิน EXPRESSION . นิพจน์สามารถสร้างได้โดยใช้ตัวดำเนินการต่อไปนี้ และสร้างได้โดยใช้ตัวดำเนินการร่วมกัน
-d file | จริงถ้าไฟล์เป็นไดเร็กทอรี [[ -d demofile ]] |
-e ไฟล์ | จริงถ้ามีไฟล์อยู่ [[ -e demofile ]] |
-f ไฟล์ | จริงถ้าไฟล์เป็นไฟล์ปกติ [[ -f demofile ]] |
ไฟล์ -h | จริงถ้าไฟล์เป็นลิงก์สัญลักษณ์ [[ -h demofile ]] |
ไฟล์ -L | จริงถ้าไฟล์เป็นลิงก์สัญลักษณ์ [[ -L demofile ]] |
-s ไฟล์ | จริงถ้าไฟล์มีขนาดที่มากกว่าศูนย์ [[ -s demofile ]] |
การทดสอบ คำสั่งยังสามารถใช้สำหรับการเปรียบเทียบประเภทอื่นๆ เช่น การเปรียบเทียบวันที่ของไฟล์ ประเภท และการอนุญาต และการเปรียบเทียบสตริงและตัวเลข เพื่อดูคู่มือผู้ใช้สำหรับ การทดสอบ คำสั่งเรียกใช้สิ่งต่อไปนี้ในเชลล์ Linux:
man test
คุณอาจสังเกตเห็น [[]] (วงเล็บเหลี่ยม) – วงเล็บเหลี่ยมสามารถใช้แทน find คำสั่ง – แต่เราจะหลีกเลี่ยงการทำอย่างนั้นเพื่อให้เข้าใจง่าย
การทดสอบ ตัวอย่างคำสั่ง
คุณตรวจสอบได้อย่างรวดเร็วว่ามีไฟล์หรือไดเรกทอรีอยู่หรือไม่โดยใช้ปุ่ม && โอเปอเรเตอร์บนเปลือก Linux ซึ่งจะทำงานก็ต่อเมื่อ ทดสอบ คำสั่งออกโดยมีสถานะเป็น TRUE:
test -e /path/to/myfile && echo "File or directory exists."
การใช้การทดสอบ คำสั่งด้วย if คำชี้แจง
คุณสร้างสคริปต์ที่มีตรรกะตามเงื่อนไขได้โดยใช้คำสั่ง if..else และ find :
if test -f path/to/myfile; then echo "File exists and is a regular file." elif test -d path/to/myfile; then echo "File exists and is a directory." else echo "File does not exist." fi
บทสรุป
เมื่อเขียนถึงระบบไฟล์ของผู้ใช้ ไม่ควรแก้ไขหรือสร้างไฟล์โดยไม่ได้ตรวจสอบว่ามีสิ่งใดเป็นอันดับแรก เพราะคุณอาจทำลายข้อมูลที่มีค่าและทำให้ตัวเองประสบปัญหา
สคริปต์ที่ดีจะตรวจสอบการมีอยู่ของไฟล์ก่อน และถามผู้ใช้ว่าควรดำเนินการอย่างไร และสามารถสร้างวิธีการข้างต้นเพื่อทำสิ่งนั้นได้
สำหรับบทแนะนำเพิ่มเติมเกี่ยวกับการนำทางด้วย Linux shell คลิกที่นี่!