ทุกอย่างไปไหน


1

ฉันย้ายไฟล์ไปมาเมื่อฉันพิมพ์คำสั่ง โดยไม่ได้ตั้งใจ mv misc/* *แทนที่จะmv misc/* .ไปทุกที่และฉันจะนำกลับมาได้อย่างไรโฟลเดอร์อื่น ๆ จะหายไป?


ไดเรกทอรีการทำงานปัจจุบันของคุณคืออะไรในขณะนั้น
Nalaurien

/ home / kruegerdata / Gracilaria_GBS_data / assemb_reads ภายในโฟลเดอร์มีโฟลเดอร์ย่อย 2 โฟลเดอร์ misc และ tmp ฉันพยายามย้ายเนื้อหาของ misc / หนึ่งโฟลเดอร์ไปยัง assembly_reads
user1952312

1
มองหา * ภายในโฟลเดอร์นั้น
Nalaurien

มันจะอยู่ที่ไหน มันจะสร้างโฟลเดอร์ระหว่างการย้ายหรือไม่
user1952312

1
yup ภายในโฟลเดอร์ที่คุณอยู่เมื่อคุณรันคำสั่ง
djsmiley2k

คำตอบ:


6

*ผมคิดว่าทุกอย่างไปยังวัตถุที่ผ่านมากลับมาโดยที่สอง หากไม่ใช่ไดเรกทอรีคุณจะได้รับข้อผิดพลาด

ไปที่ไดเรกทอรีที่คุณเรียกใช้และเรียกmv echo *จากนั้นดูในไดเรกทอรีสุดท้ายที่ถูกพิมพ์


สิ่งที่ฉันคิดว่าเกิดขึ้นมีดังนี้:

คุณmv misc/* *ถูกขยายโดยเปลือกของคุณไปที่

mv multiple-objects-from-within-misc multiple-objects-from-within-the-current-directory

วัตถุสุดท้ายในลำดับนี้คือเป้าหมายที่ไฟล์และไดเรกทอรีของคุณไป จากความคิดเห็นของคุณฉันคิดว่ามันเป็นtmpไดเรกทอรี น่าเสียดายที่อ็อบเจกต์จากmiscและบนไดเร็กตอรี่ตอนนี้อยู่tmpรวมกัน (และกับทุกอย่างที่เคยมีมาแล้ว) และคุณไม่สามารถบอกได้อย่างง่ายดายว่าอันไหนมาจากไหน


1
echo * แสดงชื่อของทุกไฟล์ แต่ไม่ใช่ตำแหน่งที่อยู่
user1952312

2

หากคุณเรียกใช้ ls คุณอาจสังเกตเห็นว่าคุณมีไดเรกทอรีชื่อแล้ว *

ใช่คุณเปลี่ยนชื่อเป็น*!

เพื่อให้ได้กลับมาใช้ mv อีกครั้ง แต่คุณจะต้องหลบหนี *

mv ./\* ./misc

The \ before * หนีมันไปซึ่งหมายความว่ามันถูกใช้เป็นตัวอักษร * แทนที่จะพยายามจับคู่อย่างอื่น

หากคุณจำไม่ได้ว่าคุณอยู่ที่ไหนในระบบไฟล์ให้ใช้find / -name '\*' 2>/dev/nullเพื่อค้นหา


1
เอาชนะฉันให้ได้ ... : P
Nalaurien

1
สิ่งนี้ทำงานได้ช่วยฉันค้นหาไฟล์ที่ใส่ไว้ในโฟลเดอร์สุดท้ายที่ฉันใช้ tmp
user1952312

2
สำหรับบันทึก: ผมได้ตรวจสอบbash, dash, sh(โดยdashปฏิบัติการ) zsh, และcsh fishไม่มีใครสร้าง*ไดเรกทอรี
Kamil Maciorowski

1
@KamilMaciorowski ฉันเห็นด้วยกับวิธีการแก้ปัญหาของคุณ อย่างใดอย่างหนึ่ง "*" หายไปบางสิ่งบางอย่างและทุกอย่างจะถูกย้ายไปหรือ directpry curent ว่างเปล่า*ยังคงอยู่และเสียงกรีดร้อง* mv mv: target '*' is not a directoryวิธีเดียวที่จะได้รับ*ต้องการ 1) ไดเรกทอรีปัจจุบันว่างเปล่าและ 2) ไดเรกทอรีต้นทางมีไฟล์เดียว
xenoid

1
@xenoid คุณถูกต้องสถานการณ์นี้จะสร้าง*ไดเรกทอรี ขอบคุณสำหรับข้อมูลนี้ ฉันดีใจที่ฉันไม่ได้ลงคะแนนคำตอบนี้อย่างไร้สาระอาจเป็นประโยชน์โดยทั่วไป (ในกรณีนี้ แต่เรารู้ตั้งแต่เริ่มต้นไดเรกทอรีปัจจุบันไม่ว่าง - miscอยู่ที่นั่น)
Kamil Maciorowski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.