แปลว่าอะไร?


9

อะไร./หมายถึง?

ตัวอย่างเช่น: คำสั่งต่อไปนี้หมายถึงการย้ายไฟล์จากGapache2โฟลเดอร์ไปที่sites-available:

root@ip-10-112-55-203:/etc/mds-1.2-beta4/sana/config/etc/Gapache2# mv ./ /etc/apache2/sites-available

ถ้าไม่ควรแก้ไขสิ่งนี้?

ฉันลองรับบางสิ่งจาก Google Search แต่./จะถูกละเว้นโดยเครื่องมือค้นหา

คำตอบ:


13

ใน Unix / Linux หมายถึงไดเรกทอรีปัจจุบันในกรณีของคุณ. /etc/mds-1.2-beta4/sana/config/etc/Gapache2นอกจากนี้ยังมีทางลัดมากมายเช่น:

  • ..: ไดเรกทอรีหลัก ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: โฮมโฟลเดอร์

ดังนั้นในการย้ายโฟลเดอร์และไฟล์ทั้งหมดจาก/etc/mds-1.2-beta4/sana/config/etc/Gapache2ไป/etc/apache2/sites-availableที่คำสั่งจะเป็นเช่นนี้

mv ./* /etc/apache2/sites-available/

UPDATE: ลิงค์นี้เป็นแหล่งข้อมูลที่ดีสำหรับคำสั่ง UNIX ขั้นพื้นฐาน


ในการย้ายไฟล์ที่ซ่อนอยู่เช่นกันคุณจำเป็นต้องใช้นิพจน์ glob ที่ซับซ้อนมากขึ้น (หรือการตั้งค่าเชลล์ที่แตกต่างกัน) ดูstackoverflow.com/questions/1586477/…
Andrea Corbellini

(แกล้งทำเป็นผู้ใช้ใหม่ในความคิดเห็นนี้) " ./หมายถึงไดเรกทอรีปัจจุบัน"ความแตกต่างระหว่าง.และ./จากนั้นคืออะไร? ฉันคิดว่านั่น.หมายถึงไดเรกทอรีปัจจุบัน
gertvdijk

@gertvdijk: อัปเดตคำตอบ :)
aneeshep

3

เกี่ยวกับ .

ใน UNIX / Linux .หมายถึงไดเรกทอรีปัจจุบัน คุณจะเห็นรายการอยู่ในlsคำสั่ง:

ls -al
total 40348
drwx------  20 root root     4096 Feb  2 23:05 .               <-- there!
drwxr-xr-x  24 root root     4096 Jan 31 20:07 ..
-rw-r--r--   1 root root      322 Dec 16 17:35 20-revert

./เครื่องหมายทับและลิงก์สัญลักษณ์

เมื่อต่อท้ายสิ่ง/นี้มันมีความหมายเช่นเดียวกับการต่อท้าย/ชื่อไดเรกทอรีอื่น ๆ มันจะทำให้แน่ใจว่าคุณไม่ได้ใช้งานไฟล์ โดยทั่วไปแล้วสิ่งนี้จะไม่แตกต่างกับcpและmvคำสั่ง แต่คุณจะเห็นความแตกต่างเมื่อคุณใช้ลิงก์สัญลักษณ์ สมมติว่าโครงสร้างนี้:

.                                                                   
├── a                                                               
├── dir1
│   ├── b
│   └── c
├── dir2
│   └── d
└── symlink -> dir2

จากนั้นรายชื่อปกติจะแสดงลิงก์เอง

ls -l symlink
lrwxrwxrwx 1 gert gert 4 Feb  3 12:15 symlink -> dir2

แต่การต่อท้ายรายการ/จะทำให้มันลงมาและแสดงเนื้อหา

ls -l symlink/
total 0
-rw-rw-r-- 1 gert gert 0 Feb  3 12:15 d

ซึ่งหมายความว่าเมื่อใช้การดำเนินงานมันเป็นสิ่งที่ดีที่จะผนวก/ถ้าคุณอ้างถึงเนื้อหาของมันหรือคุณต้องการที่จะคัดลอก / ย้ายไปที่มันโดยยกเลิกการอ้างอิงลิงค์แทนที่การเชื่อมโยงตัวเอง

ดูเพิ่มเติม: Trailing slash บนลิงก์สัญลักษณ์ไปยังไดเร็กทอรี

กลับไปที่ตัวอย่าง

ในตัวอย่างในคำถามของคุณคุณต้องการย้ายเนื้อหาของไดเรกทอรีไปที่อื่นเท่านั้น ดังนั้นเป็น aneeshep ชี้ให้เห็นmv ./* destdir/คุณควรใช้ สิ่งนี้เหมือนกับmv * destdir/เชลล์ของคุณ (Bash) ขยาย*จากไดเรกทอรีปัจจุบันโดยค่าเริ่มต้น

ดังนั้นฉันจะเรียกใช้เช่นนี้ (ในไดเรกทอรีแหล่งที่มา):

mv * /etc/apache2/sites-available/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.