ฉันย้ายไฟล์ไปมาเมื่อฉันพิมพ์คำสั่ง  โดยไม่ได้ตั้งใจ
 mv misc/* *แทนที่จะmv misc/* .ไปทุกที่และฉันจะนำกลับมาได้อย่างไรโฟลเดอร์อื่น ๆ จะหายไป?
ฉันย้ายไฟล์ไปมาเมื่อฉันพิมพ์คำสั่ง  โดยไม่ได้ตั้งใจ
 mv misc/* *แทนที่จะmv misc/* .ไปทุกที่และฉันจะนำกลับมาได้อย่างไรโฟลเดอร์อื่น ๆ จะหายไป?
คำตอบ:
*ผมคิดว่าทุกอย่างไปยังวัตถุที่ผ่านมากลับมาโดยที่สอง หากไม่ใช่ไดเรกทอรีคุณจะได้รับข้อผิดพลาด
ไปที่ไดเรกทอรีที่คุณเรียกใช้และเรียกmv echo *จากนั้นดูในไดเรกทอรีสุดท้ายที่ถูกพิมพ์
สิ่งที่ฉันคิดว่าเกิดขึ้นมีดังนี้:
คุณmv misc/* *ถูกขยายโดยเปลือกของคุณไปที่
mv multiple-objects-from-within-misc multiple-objects-from-within-the-current-directoryวัตถุสุดท้ายในลำดับนี้คือเป้าหมายที่ไฟล์และไดเรกทอรีของคุณไป จากความคิดเห็นของคุณฉันคิดว่ามันเป็นtmpไดเรกทอรี น่าเสียดายที่อ็อบเจกต์จากmiscและบนไดเร็กตอรี่ตอนนี้อยู่tmpรวมกัน (และกับทุกอย่างที่เคยมีมาแล้ว) และคุณไม่สามารถบอกได้อย่างง่ายดายว่าอันไหนมาจากไหน
หากคุณเรียกใช้ ls คุณอาจสังเกตเห็นว่าคุณมีไดเรกทอรีชื่อแล้ว *
ใช่คุณเปลี่ยนชื่อเป็น*!
เพื่อให้ได้กลับมาใช้ mv อีกครั้ง แต่คุณจะต้องหลบหนี *
mv ./\* ./misc
The \ before * หนีมันไปซึ่งหมายความว่ามันถูกใช้เป็นตัวอักษร * แทนที่จะพยายามจับคู่อย่างอื่น
หากคุณจำไม่ได้ว่าคุณอยู่ที่ไหนในระบบไฟล์ให้ใช้find / -name '\*' 2>/dev/nullเพื่อค้นหา
bash, dash, sh(โดยdashปฏิบัติการ) zsh, และcsh fishไม่มีใครสร้าง*ไดเรกทอรี
                    *ยังคงอยู่และเสียงกรีดร้อง* mv mv: target '*' is not a directoryวิธีเดียวที่จะได้รับ*ต้องการ 1) ไดเรกทอรีปัจจุบันว่างเปล่าและ 2) ไดเรกทอรีต้นทางมีไฟล์เดียว
                    *ไดเรกทอรี ขอบคุณสำหรับข้อมูลนี้ ฉันดีใจที่ฉันไม่ได้ลงคะแนนคำตอบนี้อย่างไร้สาระอาจเป็นประโยชน์โดยทั่วไป (ในกรณีนี้ แต่เรารู้ตั้งแต่เริ่มต้นไดเรกทอรีปัจจุบันไม่ว่าง - miscอยู่ที่นั่น)