लिनक्स में छोटे स्क्वीगली ~ क्या करता है?


25

मेरे पास इसके दो उदाहरण हैं और मैं सोच रहा हूं कि प्रत्येक क्या करता है:

  1. service=~

  2. mv ~/Desktop/Service$version.tgz $service

छोटी स्क्विगली क्या करती ~है?

फिर, उसके बाद, क्या करना होगा cd $service?


3
ऐसा करने पर एक टैग [
स्क्वैग्ली

3
टिल्ड, शेल विशिष्ट है और लिनक्स के लिए विशिष्ट नहीं है।
डेविड एलन फिंच

@ कवस: पूछें, और आपको प्राप्त होगा।
डेव शेरोहमान

@ धन्यवाद! लेकिन लगता है जैसे क्रिस को इससे नफरत थी। ओह ठीक है, जीवन आगे बढ़ता है ...
cregox

क्या वास्तव में यह पहली बार पूछा गया है? मुझे उम्मीद थी कि इसे एक डुप्लिकेट के रूप में बंद कर दिया जाएगा।
एरिक बी

जवाबों:


45

स्क्विगली चीज़ को "टिल्ड" कहा जाता है।

यह आपके घर निर्देशिका में फैलता है।

प्रयत्न

echo ~
echo $HOME

दोनों कथनों ने आपके घर निर्देशिका को एक पंक्ति में रखा।

देखें बैश टिल्ड विस्तार जानकारी के लिए।


8
उपरोक्त तुलना, जबकि मान्य है, शायद भ्रामक है: टिल्ड केवल लिपियों में शेल व्याख्या के दौरान और कमांड लाइन पर काम करता है। पर्यावरण चर, $ HOME, हालांकि, कहीं भी काम करता है एक पर्यावरण चर काम करता है - जो कि बहुत अधिक जगह है।
मेई

36

"स्क्विगली" को टिल्ड कहा जाता है। इसका उपयोग आपके घर की निर्देशिका को संदर्भित करने के लिए किया जाता है, जो कि लिनक्स पर होता है /home/username । इसे $HOMEपर्यावरण चर में भी संग्रहीत किया जाता है । ~होम निर्देशिका के स्थान पर विस्तार करना शेल (जैसे zsh या bash) या फ़ाइल प्रबंधक (Nautilus की तरह) का काम है न कि फाइलसिस्टम या OS का स्व।

आप इसका उपयोग किसी अन्य उपयोगकर्ता के घर निर्देशिका को संदर्भित करने के लिए भी कर सकते हैं। उदाहरण के लिए, यदि अन्य उपयोगकर्ता का उपयोगकर्ता नाम है 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

3
एक अतिरिक्त बात ध्यान में रखना: टिल्ड विस्तार शेल या फिल्ममैन का काम है, यह केवल लिनक्स फाइल सिस्टम का कार्य नहीं है। इस प्रकार यह अक्सर विन्यास फाइल में काम नहीं करेगा और "~" के आसपास उद्धरण जोड़ने से यह शेल में इसके विस्तार को रोक देगा।
ग्रम्बेल

3
यह भी ध्यान दिया जाना चाहिए कि घर निर्देशिका जरूरी नहीं है / घर में इसलिए यह नहीं माना जाना चाहिए कि ~ का विस्तार / घर / / [मेरे उपयोगकर्ता नाम] या कि ~ बॉब / घर / बॉब तक
पहुँचता है

सुझाव @ धन्यवाद के लिए धन्यवाद। और @ Darkliquid के सुझाव में जोड़ने के लिए @PriceChild को धन्यवाद!
वफ़र

10

दोनों में # 1 & # 2: ~ आपकी होम डायरेक्टरी है, इसलिए यदि आप क्वर्टी हैं तो यह संभवतः डायरेक्टरी / होम / वीवर्टी होगी। इसलिए ls ~उसे देखने की कोशिश करें।

# 1 के लिए: यह मुझे ऐसा लगता है जैसे चर सेवा को आपकी होम निर्देशिका के रूप में परिभाषित किया जा रहा है।

इसका मतलब है कि # 2 के बाद डेस्कटॉप उपनिर्देशिका से tgz फाइल को आपकी होम डाइरेक्टरी में ले जाया गया है, # 3 तब होम डायरेक्टरी में बदलाव होता है।


5

ऐसा लगता है कि कमांड निम्नलिखित कर रहे हैं।

  1. उदाहरण के लिए, अपने होम फोल्डर स्थान पर एक चर नामक सेवा प्रदान करें:

    /home/user
    
  2. यह आपके डेस्कटॉप से ​​फ़ाइल को आपके होम डायरेक्टरी के शीर्ष स्तर पर ले जाता है, उदाहरण के लिए:

    /home/user/Desktop/Service$version.tgz $service
    
  3. स्क्रिप्ट तब निर्देशिका को होम निर्देशिका के शीर्ष स्तर पर बदल देती है।

इसलिए, सभी स्क्रिप्ट जो कर रही है वह केवल आपके डेस्कटॉप को फ़ाइल को आपके /home/userफ़ोल्डर में स्थानांतरित करके साफ कर रही है ।


1

मैं यहाँ जोड़ता हूँ कि ~ उपयोगकर्ता [उपयोगकर्ता] की होम डाइरेक्टरी में भी विस्तार करता है, इसलिए यह आपके अपने होम डायरेक्टरी के लिए शॉर्टकट नहीं है ।

उदाहरण के लिए:

[guy@abox anotherdir]$ cd ~ 
[guy@abox ~]$ pwd
/home/guy
[guy@abox ~]$ cd ~john
[guy@abox john]$ pwd
/home/john
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.