หากเป้าหมายของคุณคือดำเนินการคำสั่งหนึ่งบรรทัดที่:
- ลบและสร้างไดเรกทอรีใหม่
~/Desktop/foo
หากมีอยู่แล้ว
- เพียงสร้างไดเรกทอรี
~/Desktop/foo
หากยังไม่มีอยู่
จากนั้นคุณสามารถใช้:
rm -r ~/Desktop/foo; mkdir ~/Desktop/foo
;
เทียบเท่ากับการขึ้นบรรทัดใหม่ แต่จะช่วยให้คุณสามารถรันคำสั่งหลายคำสั่งในบรรทัดเดียว (เช่น "คำสั่งเดียว")
- หากไดเรกทอรีที่คุณลบอาจมีไฟล์แบบอ่านอย่างเดียวคุณจะต้อง
-f
ตั้งค่าสถานะเพื่อลบออกโดยไม่ต้องให้ผู้ใช้โต้ตอบ ไม่เป็นไร แต่ฉันแนะนำให้ระมัดระวังเป็นrm -rf ...
พิเศษ ดูman rm
รายละเอียดที่
- คุณต้องใช้
rm
คำสั่งให้เสร็จก่อนที่mkdir
คำสั่งจะทำงาน นี่คือเหตุผลที่จะใช้แทน;
&
(คำสั่งก่อนหน้านี้&
ทำงานแบบอะซิงโครนัสในพื้นหลัง)
- คุณต้องการให้
mkdir
คำสั่งรันเมื่อrm
คำสั่งสำเร็จ นี่คือเหตุผลที่จะใช้แทน;
||
- คุณต้องใช้
mkdir
คำสั่งเพื่อรันเมื่อrm
คำสั่งล้มเหลว (โดยปกติความล้มเหลวจะหมายถึงไดเรกทอรีที่ไม่มีอยู่) นี่คือเหตุผลที่จะใช้แทน;
&&
rm
คำสั่งอาจล้มเหลวแม้เมื่อไดเรกทอรีมีอยู่แล้วซึ่งในกรณีที่mkdir
คำสั่งจะล้มเหลวเช่นกัน แต่ข้อผิดพลาดจะทำให้รู้สึกและมีอาจไม่จำเป็นต้องเพิ่มขั้นตอนการตรวจสอบกลางสำหรับfoo
การดำรงอยู่ของก่อนที่จะพยายามที่จะสร้างมันขึ้นมา
ดู3.2.3 รายชื่อคำสั่งในคู่มือการทุบตีอ้างอิงสำหรับข้อมูลเพิ่มเติมและคำอธิบายเกี่ยวกับ;
, &
, ||
และ&&
ผู้ประกอบการ
ตามที่muru แนะนำ (และรายละเอียด Rinzwind ) ฉันแนะนำให้คุณดูrsync
เพื่อดูว่าจะตอบสนองความต้องการสำรองข้อมูลของคุณหรือไม่ มีคำแนะนำที่เป็นประโยชน์เพิ่มเติมในหน้าเอกสารคู่มือrsyncเช่นเดียวกับคู่มือ Ubuntu rsyncนี้
ทำไม mkdir ไม่มีตัวเลือกนี้
mkdir
สร้างไดเรกทอรี ("mk" หมายถึง "make" ) เพราะมันจะลบไดเรกทอรีซ้ำและไฟล์ทั้งหมดในพวกเขาจะไม่ดีเพราะมันจะละเมิดหลักการของความประหลาดใจอย่างน้อยในวิธีที่อาจนำไปสู่การสูญเสียข้อมูล
rmdir
ไม่ได้ลบไดเรกทอรีที่มีไฟล์ (ไม่ใช่ไดเรกทอรี) อยู่ด้วย rm
มี-r
ตัวเลือกซึ่งเหมาะสมแล้วเนื่องจากrm
คาดว่าจะลบไฟล์ (นั่นคือจุดประสงค์ของมันดังนั้นอันตรายที่แฝงอยู่นั้นคือสัญชาตญาณและผู้ใช้มักจะรู้ว่าต้องระวังเมื่อเรียกใช้rm
คำสั่ง)
foo
เหมือนลบเนื้อหาทั้งหมดหรือไม่mkdir
มี-p
ตัวเลือกที่ละเว้นหากไดเรกทอรีอยู่