Terminaldeki dizinler arasında nasıl dolaşırım?


26

Linux ve Ubuntu'da yeniyim ve bazı zorluklarla klasör / dizin değiştirmeyi denedim.

Birisi aşağıdaki komutların neden istenen hedef klasöre / dizine geçemediğini açıklayabilir mi?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$

Yanıtlar:


38

Dosya sistemi GNU'dur / Linux bir ağacın gibidir, ancak kök üsttedir. :-) Demek ki aşağıdaki gibi bir yapıya sahipsiniz:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

Ağacın içinde hareket etmek istiyorsanız, seçeneklerden biri göreceli yolları kullanmaktır. Eğer iseniz /home/sharon, o zaman yazma cd Downloadsişlemi işe yarayacaktır, çünkü Yüklemeler mevcut dizininizin bir alt çocuğudur. Eğer alt klasöründeyseniz Documentsve ( cd) dizinini değiştirmek Downloadsistiyorsanız, yukarı ( ..) ve sonra konumuna gitmelisiniz Downloads. Yani doğru komut olacaktır cd ../Downloads.

Ayrıca mutlak bir yol da girebilirsiniz. Yani Downloadsklasör bir alt değildir sharonki bir alt taşımaktadır homehangi ... ayrıca girebilirsiniz Yani (eğer :-) fikir edinmek) cd /home/sharon/DownloadsEğer dosya sisteminde olurlarsa olsunlar.

  • ~her zaman geçerli kullanıcının giriş dizinini ifade eder ( /home/sharonsizin durumunuzda). Eğer girerseniz cd ~/Downloadssize inecek Downloadsklasörde.

  • .geçerli dizine atıfta bulunur, bu yüzden cd ./Downloadskabaca eşittir cd Downloads.

  • .. "ana dizin" anlamına gelir.

  • / dosya yolunun başında kök dizini belirtir.

Bir sonraki güzel şey sekme genişletmesidir. Eğer girerseniz cd ~/DowTab(son Tab tuşuna basarak edilir), bash otomatik onu genişletir cd ~/Downloads.

Diğerlerinin dediği gibi GNU / Linux büyük / küçük harf duyarlıdır. Yani girerseniz Home, fark yaratır , hOmeveya home. Dahası, şimdi gördüğünüzü /homeve arasında bir fark olduğunu umuyorum home. Bunlardan ilki mutlak, sonuncusu mevcut dizininize göre.


1
@ qbi: Vay, harikasın. Klasörler / dizinler arasında nasıl gezineceğiniz hakkındaki ayrıntılı açıklamayı seviyorum. Bir eğitim kurumunda öğretmen veya profesör müsünüz? Çoğu BT uzmanı birçok BT bilgisi bilir, ancak kavramları yenilebilirlerin anlayabilmesi için yönetilebilir ve "sindirilebilir" parçalara ayırma, böylece yalnızca sizin gibi bir avuç ama yetenekli adamın eline geçebilir.
n00b

2
@ n00b Bu cevabı yararlı bulduysanız, solundaki V işaretine tıklayarak "kabul edebilirsiniz".
Revetahw, Monica

8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

Küçük cedilla ~ zaten / home / sharon dizininde olduğunuzu gösterir. 'Cd Home'u istediğinizde terminal / home / sharon / Home' u arar. Hiçbiri yok.

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

Şimdi, önde gelen eğik çizgi verilen geçerli konumun üstündeki bir dizine gitmek istiyoruz; bu / home / Home'dur. Hiçbiri yok.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

Başarı!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

Bunun tam olarak nerede olduğundan emin değilim. / Home / sharon / Documents konumundan / home / sharon / Downloads arasında değişiklik yapmak istiyorsanız, lütfen deneyin:

cd ~/Downloads

Doğrudan ana dizininize gitmek istiyorsanız, bu / home / sharon, yani:

cd

Ayrıca geri gidebilirsiniz

cd ..

Ve birlikte çalıştığınız dizini yazdırabilirsiniz (çalışma dizini yazdır)

pwd

@ chili555: Benim gibi yenidoğanlara yardım ettiğin için teşekkürler. Size ve sevdiklerinize Mutlu Noeller.
n00b

2
Baştaki eğik çizgi, geçerli dizinin üstünde değil, köke göre bir yolu belirtir. Olabilir../
psusi 15

3

Komut size nedenini söyler: Böyle bir dizin yok.

Dosya adları büyük / küçük harf duyarlıdır, bu yüzden / Home değil / home. Başlıca bir eğik çizgi olmadan, geçerli dizine göre olduğu varsayılır ve Yüklemeler dizini ~ / Documents içerisinde değildir, / de değildir, ancak ana dizininizde ~kısayol olan, bu nedenle ~ / Belgeler.


@ psusi: Sizlere de teşekkürler. Size ve sevdiklerinize Mutlu Noeller.
n00b

@ psusi: Baştaki eğik çizgi ne anlama geliyor?
n00b

@ psusi: Ne anlama geliyor? / <dosyaadı>?
n00b

@noob, /kök dizinden başlangıç ​​ve .geçerli dizini ifade eder.
psusi

0

Buna cevap vermek zorundayım çünkü cevaplar hakkında yorum yapamam.

Baştaki eğik çizgi ne anlama geliyor? - n00b

Bu, bahsettiğiniz zayıflığın bir dosya değil, bir dizin olduğu anlamına gelir. Dosyaların Windows'taki gibi dosya sonlarına sahip olması gerekmez, bu nedenle ~/thisIsAFileana dizininizde bir dosya olur, ancak ~/thisIsAFile/bir dizin / klasör olur.

Ne anlama geliyor? - n00b

Bu, erişmek istediğiniz dosyanın geçerli dizinde olduğu anlamına gelir.

Diğer faydalı ipuçları:

Bir klasöre geri gidebilirsiniz

cd ..

Ve içinde bulunduğunuz yolu alabilirsiniz (çalışma dizini yazdır)

pwd

@ a2r: Açıklama için teşekkürler. Dosyaların Microsoft Windows'daki gibi dosya uzantılarına sahip olmadığını bilmiyordum. Programların Ubuntu'da da dosya uzantıları var mı?
n00b

Genelde değil, sistem bir dosyanın hangi uçlara sahip olduğunu umursamıyor, eğer çalıştırılabilir olarak işaretlenmişse (chmod hakkında google) bir program olarak çalıştırabilirsiniz. Ayrıca $ PATH adında genel bir değişken (google) var, kaydedilmiş bir görünüm dizini var (hangisinin olduğunu görebilirsiniz echo $PATH). Ve sizin gibi bir program çalıştırmayı denediğinizde gedit, terminali yazın. Sisteminiz $ PATH içindeki klasörleri atıyor ve gedit'i arıyor.
a2r

1
Bu sondaki bir eğik çizgi olur, baştaki eğik çizgi değil. Ayrıca önce orada bir boşluk olması gerekir ...
psusi

@ psusi: Üzgünüm. Kafam biraz karıştı. Sonunda eğik çizgi nedir? eğik çizgi? Örnekler lütfen? Şimdiden teşekkürler.
n00b
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.