Kullanılmakta olan iki örneği var ve her birinin ne yaptığını merak ediyorum:
service=~
mv ~/Desktop/Service$version.tgz $service
Küçük dalgalı ne yapar ~
?
Sonra ondan sonra ne yapardı cd $service
?
Kullanılmakta olan iki örneği var ve her birinin ne yaptığını merak ediyorum:
service=~
mv ~/Desktop/Service$version.tgz $service
Küçük dalgalı ne yapar ~
?
Sonra ondan sonra ne yapardı cd $service
?
Yanıtlar:
Dalgalı şey bir "tilde" denir.
Ana dizininize genişler.
Deneyin
echo ~
echo $HOME
Her iki ifade de ev dizininizi bir satıra yerleştirir.
Detaylar için bash Tilde Expansion'a bakınız.
"Dalgalı" bir tilde denir. Linux'taki normalde ev dizinine atıfta bulunmak için kullanılır /home/username
. Ayrıca $HOME
ortam değişkeninde saklanır . Giriş ~
dizininin konumunu genişletmek, kabuğun (zsh veya bash gibi) veya dosya yöneticisinin (Nautilus gibi) işi olup dosya sistemi veya işletim sisteminin kendisi değildir.
Bunu başka bir kullanıcının ana dizinine başvurmak için de kullanabilirsiniz. Örneğin, diğer kullanıcının kullanıcı adı ise bob
, ~bob
genişletilecek olan kendi dizinine bakabilirsiniz /home/bob/
.
Eğer setleri değişken verdiğim ilk örnek service
için ~
, yani ana dizine karşılık gelir. Bu eşittir service=/home/username
veya service=$HOME
.
İkinci örnek dosyayı ~/Desktop/Service$version.tgz
(veya /home/username/Desktop/Service$version.tgz
) kopyalar /home/username
. Bu komut şuna eşittir:
mv ~/Desktop/Service$version.tgz ~
veya
mv ~/Desktop/Service$version.tgz $HOME
veya
mv ~/Desktop/Service$version.tgz /home/username/
Üçüncüsü geçerli çalışma dizinini ( $PWD
) olarak değiştirir /home/username/
. Bu eşdeğerdir:
cd /home/username/
veya
cd $HOME
Her iki # 1 & # 2: ~ de ana dizininizdir, bu nedenle eğer qwerty iseniz, muhtemelen / home / qwerty dizini olacaktır. Öyleyse ls ~
bunu görmeye çalış .
# 1 için: değişken servisi ana dizininiz olarak tanımlanıyor gibi görünüyor.
Bunun anlamı # 2, tgz dosyasını Desktop alt dizininden ana dizininize getirdikten sonra, # 3 sonra ana dizine geçer.
Komutlar aşağıdakileri yapıyor gibi görünüyor.
Ana klasör konumunuza servis adı verilen bir değişken atayın, örneğin:
/home/user
Dosyayı masaüstünüzden ana dizininizin en üstüne taşır, örneğin:
/home/user/Desktop/Service$version.tgz $service
Komut dizini daha sonra dizini ana dizinin en üst seviyesine değiştirir.
Yani, betiğin yaptığı tek şey dosyayı masaüstüne taşıyarak masaüstünüzü temizlemektir /home/user
.