ตามที่อธิบายโดย @ssssteffff โดยmv *
ที่เชลล์ใช้ส่วนขยาย wildcard จากไฟล์ในไดเร็กทอรีปัจจุบัน อย่างไรก็ตามพฤติกรรมของmv
คำสั่งขึ้นอยู่กับจำนวนข้อโต้แย้งที่*
ขยายไป หากมีมากกว่าสองอาร์กิวเมนต์อาร์กิวเมนต์สุดท้ายต้องเป็นไดเรกทอรี:
mv [OPTION]... SOURCE... DIRECTORY
ดังนั้น,
ฉันสร้าง 5 ไฟล์
$ touch 1 2 3 4 5
$ ls
1 2 3 4 5
$ mv *
mv: target ‘5’ is not a directory
$ ls
1 2 3 4 5
ตอนนี้ถ้าฉันสร้างไดเรกทอรีซึ่งเป็นพารามิเตอร์สุดท้ายของการขยายตัวของ wild-card ดังนั้น:
$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1 2 3 4 5
คุณควรตรวจสอบอีกครั้งว่าอาร์กิวเมนต์สุดท้ายคืออะไร
- หากอาร์กิวเมนต์สุดท้ายเป็นไดเรกทอรีแสดงว่าข้อมูลของคุณอาจปลอดภัย
- หากจำนวนอาร์กิวเมนต์ทั้งหมดเป็น 2 และอาร์กิวเมนต์สุดท้ายเป็นไดเรกทอรีแสดงว่าข้อมูลของคุณอาจปลอดภัย
- หากจำนวนอาร์กิวเมนต์ทั้งหมดเป็น 2 และอาร์กิวเมนต์สุดท้ายเป็นไฟล์ไฟล์ที่สองจะหายไปโดยแน่นอน
คุณแน่ใจหรือว่าคุณไม่เห็นข้อผิดพลาดเช่นนี้
mv: target ‘5’ is not a directory`