บทที่ 4 · อ่าน 7 นาที
จัดการไฟล์
5 คำสั่งจัดการไฟล์ mkdir touch cp mv rm พร้อมเตือนว่า rm ลบถาวรไม่เข้าถังขยะ และเครื่องหมาย * ที่ทำของซ้ำๆ 100 ไฟล์ในคำสั่งเดียว
ผ่านช่วงแรกมาแล้ว เปิด Terminal ได้ เดินดูในเครื่องได้ อ่าน path ออก บทนี้ เริ่มทำของจริง คือ การจัดการไฟล์ เป็นเรื่องที่ Terminal เก่งกว่า คลิกเมาส์ชัดเจนที่สุด
จะเรียน 5 คำสั่งใหม่ครับ แต่ละตัวทำหน้าที่เดียว สร้าง คัดลอก ย้าย ลบ แถม เคล็ดลับสั้นๆ ที่ทำให้ทำของซ้ำๆ ได้ในคำสั่งเดียว
5 คำสั่ง 5 หน้าที่
mkdirสร้างกล่องใหม่ (ย่อจาก make directory)touchสร้างไฟล์เปล่าcpคัดลอก (ย่อจาก copy)mvย้ายหรือเปลี่ยนชื่อ (ย่อจาก move)rmลบ (ย่อจาก remove)
สร้างของใหม่ ด้วย mkdir กับ touch
อยากสร้างกล่องใหม่ในกล่องที่เปิดอยู่ตอนนี้ พิมพ์ mkdir ตามด้วยชื่อ กล่อง
mkdir Homeworkผลลัพธ์ ได้กล่องเปล่าชื่อ Homework เพิ่มขึ้นในตำแหน่งปัจจุบัน
อยากสร้างไฟล์เปล่าๆ แทน ใช้ touch
touch notes.txtผลลัพธ์ ได้ไฟล์ notes.txt เปล่าๆ ใน folder ปัจจุบัน เปิดเข้าไป ยังไม่มีอะไรข้างใน แต่ตัวไฟล์มีจริง
คัดลอกกับย้าย ด้วย cp กับ mv
2 คำสั่งนี้ใช้รูปแบบเดียวกัน
คำสั่ง <ของเดิม> <ปลายทาง>ตัวอย่าง cp
cp resume.docx resume-backup.docxผลลัพธ์ ได้ไฟล์ใหม่ resume-backup.docx ส่วน resume.docx เดิมยังอยู่ที่เดิม
ตัวอย่าง mv
mv homework.pdf Documents/ผลลัพธ์ ไฟล์ homework.pdf ออกจากที่เดิม ไปอยู่ใน Documents แทน
mv ใช้เปลี่ยนชื่อก็ได้ ถ้าปลายทางไม่ใช่ folder ที่มีอยู่
mv old-name.txt new-name.txtใน Mac/Linux ย้ายไฟล์ไปชื่อใหม่ในกล่องเดิมเท่ากับเปลี่ยนชื่อ ไม่มีคำสั่ง rename แยกออกมา
ลบ ด้วย rm
ลบไฟล์เดียว
rm old-photo.jpgถ้าจะลบ folder กับของข้างในทั้งหมด ต้องเติม -r (ย่อจาก recursive แปลว่าลึกลงไปทุกชั้น)
rm -r OldHomework-r ทำให้ rm ลบของในกล่องด้วย ไม่ใช่แค่กล่องเปล่า
เคล็ดลับ เครื่องหมาย *
อยากลบรูปทุกตัวในกล่องทีเดียว ไม่ต้องพิมพ์ทีละชื่อ ใช้เครื่องหมาย * แทน "ทุกอย่างที่ตรงรูปแบบ"
rm *.jpgลบทุกไฟล์ที่ลงท้าย .jpgrm *ลบทุกไฟล์ใน folder ปัจจุบัน (folder ย่อยข้าม)cp *.txt backup/คัดลอกทุกไฟล์ .txt ไปที่ backup
เครื่องหมาย * ฝรั่งเรียกว่า glob pattern เป็นวิธีบอก Terminal ว่า "หลายไฟล์ในคำสั่งเดียว" Terminal จะแทน * ด้วยทุกชื่อที่ตรงรูปแบบ แล้วทำคำสั่งกับทุกตัวพร้อมกัน เร็วกว่าคลิกลบทีละไฟล์เป็นกอง
สรุปบทนี้
mkdir <ชื่อ>สร้างกล่องใหม่touch <ชื่อ>สร้างไฟล์เปล่าcp <จาก> <ไป>คัดลอก (ของเดิมยังอยู่)mv <จาก> <ไป>ย้าย/เปลี่ยนชื่อ (ของเดิมหาย)rm <ชื่อ>ลบ ถาวร ไม่เข้าถังขยะrm -r <folder>ลบ folder กับของข้างในทั้งหมด*ทุกอย่างที่ตรงรูปแบบ ใช้ได้กับ rm cp mv ls
ตอนนี้คำสั่งจัดการไฟล์ครบแล้วครับ บทต่อไปเป็นเรื่องที่ทำให้ Terminal ทรงพลัง จริงๆ คือ ต่อคำสั่งเข้าด้วยกัน เอาผลของคำสั่งหนึ่งส่งให้อีก คำสั่งทำต่อ ทำของซ้ำๆ 100 รอบในบรรทัดเดียว