ฉันมีสองกรณีที่มีการใช้งานและฉันสงสัยว่าแต่ละคนทำอะไร:
service=~
mv ~/Desktop/Service$version.tgz $service
เจ้าหนูตัวน้อย~
ทำอะไร?
จากนั้นหลังจากนั้นจะcd $service
ทำอย่างไร?
ฉันมีสองกรณีที่มีการใช้งานและฉันสงสัยว่าแต่ละคนทำอะไร:
service=~
mv ~/Desktop/Service$version.tgz $service
เจ้าหนูตัวน้อย~
ทำอะไร?
จากนั้นหลังจากนั้นจะcd $service
ทำอย่างไร?
คำตอบ:
สิ่งที่ไก่เขี่ยเรียกว่า "ตัวหนอน"
มันขยายไปยังไดเรกทอรีบ้านของคุณ
ลอง
echo ~
echo $HOME
คำสั่งทั้งสองใส่ไดเรกทอรีบ้านของคุณเองลงบนบรรทัด
ดูbash Tilde Expansionสำหรับรายละเอียด
"ไก่เขี่ย" เรียกว่าตัวหนอน มันถูกใช้เพื่ออ้างถึงไดเรกทอรีบ้านของคุณซึ่งบน Linux เป็นปกติ /home/username
มันยังถูกเก็บไว้ใน$HOME
ตัวแปรสภาพแวดล้อม การขยาย~
ไปยังตำแหน่งของโฮมไดเร็กตอรี่คืองานของเชลล์ (เช่น zsh หรือ bash) หรือตัวจัดการไฟล์ (เช่น Nautilus) และไม่ใช่ระบบไฟล์หรือระบบปฏิบัติการของมันเอง
คุณสามารถใช้สิ่งนี้เพื่ออ้างถึงโฮมไดเร็กตอรี่ของผู้ใช้คนอื่น ตัวอย่างเช่นถ้าชื่อผู้ใช้ของผู้อื่นเป็นbob
คุณอาจจะหมายถึงไดเรกทอรีบ้านของพวกเขาด้วยซึ่งจะมีการขยายไปยัง~bob
/home/bob/
ตัวอย่างแรกที่คุณกำหนดให้ตัวแปรservice
เป็น~
ดังนั้นมันจึงสอดคล้องกับโฮมไดเร็กตอรี่ของคุณ นี้จะเทียบเท่ากับหรือservice=/home/username
service=$HOME
ที่สองเช่นสำเนาไฟล์~/Desktop/Service$version.tgz
(หรือ/home/username/Desktop/Service$version.tgz
) /home/username
เพื่อ คำสั่งนี้เทียบเท่ากับ:
mv ~/Desktop/Service$version.tgz ~
หรือ
mv ~/Desktop/Service$version.tgz $HOME
หรือ
mv ~/Desktop/Service$version.tgz /home/username/
ที่สามจะเปลี่ยนไดเรกทอรีการทำงานปัจจุบัน ( $PWD
) /home/username/
เพื่อ นี่เทียบเท่ากับ:
cd /home/username/
หรือ
cd $HOME
ใน # 1 & # 2: ~ เป็นไดเรกทอรีหลักของคุณดังนั้นหากคุณเป็น qwerty มันอาจจะเป็นไดเรกทอรี / home / qwerty ดังนั้นลองls ~
มาดูกันว่า
สำหรับ # 1: ดูเหมือนว่าฉันจะกำหนดบริการตัวแปรเป็นไดเรกทอรีบ้านของคุณ
ซึ่งหมายความว่าหลังจาก # 2 ได้ย้ายไฟล์ tgz จากไดเรกทอรีย่อย Desktop ไปยังไดเรกทอรีบ้านของคุณ # 3 จากนั้นเปลี่ยนเป็นไดเรกทอรีบ้าน
ดูเหมือนว่าคำสั่งจะทำดังต่อไปนี้
กำหนดตัวแปรที่เรียกว่าบริการไปยังตำแหน่งโฟลเดอร์บ้านของคุณตัวอย่างเช่น
/home/user
มันย้ายไฟล์จากเดสก์ท็อปของคุณไปที่ระดับบนสุดของโฮมไดเร็กตอรี่ของคุณ, ตัวอย่างเช่น:
/home/user/Desktop/Service$version.tgz $service
สคริปต์จะเปลี่ยนไดเรกทอรีเป็นระดับบนสุดของโฮมไดเรกทอรี
ดังนั้นสคริปต์ทั้งหมดที่ทำคือเพียงแค่ล้างเดสก์ทอปของคุณโดยการย้ายไฟล์ไปยัง/home/user
โฟลเดอร์ของคุณแทน
ฉันจะเพิ่มที่นี่ที่ ~ ผู้ใช้ขยายไปยังโฮมไดเร็กตอรี่ของ [user] ด้วยดังนั้นมันไม่ใช่แค่ทางลัดสำหรับโฮมไดเร็กตอรี่ของคุณเอง
เช่น:
[guy@abox anotherdir]$ cd ~
[guy@abox ~]$ pwd
/home/guy
[guy@abox ~]$ cd ~john
[guy@abox john]$ pwd
/home/john