Score:1

mv เป็นคำสั่งเดียวที่เราสามารถใช้เพื่อย้ายไฟล์ / โฟลเดอร์หรือไม่?

ธง de

เป็น เอ็มวี คำสั่งเดียวที่เราสามารถใช้เพื่อย้ายไฟล์ / โฟลเดอร์บน Ubuntu 20.04?

David avatar
cn flag
คุณพยายามทำอะไรให้ mv ไม่ดีพอ?
ByteManager avatar
de flag
ฉันกำลังเรียนรู้คำสั่ง Ubuntu/linux ฉันกำลังสร้างรายการคำสั่งตามฟังก์ชันหลักและฟังก์ชันรอง ขณะที่ลงรายการ ฉันพบว่าทั้งคำสั่ง `touch` และ `>` **can** สร้างไฟล์ใหม่ (ฉันได้ยินมาว่ามีความแตกต่างระหว่างวิธีการทำงานของทั้งสองนี้) ผมจึงอยากทราบชุดคำสั่งทั้งหมดที่สามารถทำหน้าที่เดียวกันได้ภายใต้เงื่อนไขพิเศษบางประการ
David avatar
cn flag
mv ย้ายไฟล์ที่ไม่ได้สร้างขึ้นโดยใช้คำสั่ง man ตามด้วยสิ่งที่คุณต้องการเรียนรู้ในหน้าต่างเทอร์มินัล
ByteManager avatar
de flag
@David ขอบคุณที่แนะนำคำสั่ง ```man```
waltinator avatar
it flag
การจำแนกเป็นฟังก์ชัน "หลักและรอง" เป็นเส้นทางการเรียนรู้ที่ผิด โปรแกรมทำในสิ่งที่มันทำ "หน้าที่" ทั้งหมดเป็น "หลัก" ขึ้นอยู่กับว่างานปัจจุบันต้องการอะไร
waltinator avatar
it flag
อ่าน `man man` - เรียนรู้เกี่ยวกับ `man -k`
PonJar avatar
in flag
การพยายามเรียนรู้สิ่งนี้เป็นเรื่องดี แต่บางทีคุณอาจตั้งเป้าหมายไว้สูงเกินไป ฉันใช้งาน Linux มานานกว่า 10 ปีแล้ว และยังคงเรียนรู้สิ่งใหม่ๆ ทุกเดือน กุญแจสำคัญในการนี้คือการรู้ว่าจะหาคำสั่งที่คุณต้องการได้ที่ไหน การค้นหาโดย Google อย่างง่ายด้วยบางอย่าง เช่น สูตรโกงคำสั่ง Linux จะให้รายการมากมายที่จัดหมวดหมู่ในรูปแบบต่างๆ คุณจะพบว่าคุณใช้คำสั่งบางอย่างบ่อยขึ้น สิ่งเหล่านี้คือสิ่งที่คุณต้องเรียนรู้ โดยเฉพาะอย่างยิ่งเมื่อมีตัวเลือกมากมายที่ปรับเปลี่ยนเอฟเฟกต์ของคำสั่ง
Score:0
ธง in

เอ็มวี ข้ามระบบไฟล์

  • คัดลอกไฟล์และลบไฟล์ต้นฉบับ

สำหรับไฟล์:

แหล่งที่มา cp เป้าหมาย && แหล่งที่มา rm

สำหรับไดเร็กทอรี:

cp -r เป้าหมายต้นทาง && rm -rf ต้นทาง

เอ็มวี ไปยังระบบไฟล์เดียวกัน:

  • สร้างลิงค์ใหม่ไปยังไอโหนดของคุณและลบลิงค์เดิม

คุณจึงสามารถเลียนแบบการย้ายในระบบไฟล์เดียวกันกับ && rm:

ln แหล่งที่มาเป้าหมาย && แหล่งที่มา rm

อย่างไรก็ตาม วิธีนี้ใช้ได้กับไฟล์เท่านั้น
หากต้องการย้ายไดเร็กทอรีแบบเรียกซ้ำ คุณสามารถสร้างสคริปต์/ฟังก์ชันขนาดเล็กได้:

#!/bin/bash
lmv()(

  ตั้ง -eu

  s="$1"
  เสื้อ = "$ 2"

  ถ้า [ -f "$s" ]; แล้ว
    printf '%s -> %s\n' "$s" "$t"
    ลน "$s" "$t"
    rm "$s"
  elif [ -d "$s" ]; แล้ว
    printf '%s -> %s\n' "$s" "$t"
    mkdir "$t"
    shopt -s ดอทโกล
    สำหรับ e ใน "$s"/*; ทำ
      lmv "$e" "$t/${e##*/}"
    เสร็จแล้ว
    rmdir "$s"
  อื่น
    >&2 printf 'ไม่มีไฟล์หรือไดเรกทอรี: %s\n' "$s"
    ทางออก 1
  ไฟ
)

การใช้งาน:

เป้าหมายต้นทาง lmv

(หมายเหตุ: สคริปต์นี้เป็นเพียงการพิสูจน์แนวคิดและมีบางอย่างขาดหายไป เช่น มีหลายแหล่งที่มาหรือสงวนเจ้าของและสิทธิ์ เป็นต้น)

mook765 avatar
cn flag
เป็นไปได้ไหมที่จะใช้ฟังก์ชันในคำจำกัดความ (บรรทัดที่ 19 ดูเหมือนว่าคุณต้องการใช้ `mv` แทน `lmv` ที่นี่)
pLumo avatar
in flag
ไม่ ฉันต้องการใช้ `lmv` และใช่ มันเป็นไปได้และจำเป็นอย่างยิ่งที่นี่เพื่อทำให้มันเป็นแบบเรียกซ้ำ
Score:0
ธง sa

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

คุณสามารถเลียนแบบการเคลื่อนไหวโดยไม่ต้อง เอ็มวี โดยใช้ในตัว ซีพี และ rm คำสั่ง:

ตัวอย่าง cp/foo
ls -l -G -g --inode
7476869 -rwxrwxr-x. 29545 2 ส.ค. 11:58 น
rm ตัวอย่าง/foo

แหล่งที่มา: ปรับปรุงจาก การย้ายไฟล์บน Linux โดยไม่ต้องใช้ mv

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา