[Çözüldü] cd Komutu Hakkında Bir Soru

Başlatan jctgu, 10 Ekim 2016 - 01:32:36

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

jctgu

cd /Downloads yazınca
bash: cd: /Downloads: No such file or directory
hatası alıyorum ama cd Downloads yazınca klasore girebiliyorum bunun sebebı nedir
örneğin

cd opt yazınca yıne hata alıyorum ama cd /opt klasore gırebılıyorum neden boyle?

ata1

#1
cd Downloads/
yada alt daki şekil de  olmalı ki dosyalama hiyerarşisinin üstünde ev dizini var olduğundan dolayı

cd /home/Downloads

Elessar

Alıntı yapılan: jctgu - 10 Ekim 2016 - 01:32:36
cd /Downloads yazınca
bash: cd: /Downloads: No such file or directory
hatası alıyorum

Terminalde erişilmek istenen klasörün yani Downloads'ın sol tarafına yazılan / işareti kök dizin yani root anlamına gelir.

cd /Downloads

Beni kök dizindeki Downloads klasörüne eriştir emridir. Haliyle kök dizinde Downloads klasörü bulunmadığı için bash "No such file or directory" deyip emri icra etmiyor.


Alıntı yapılan: jctgu - 10 Ekim 2016 - 01:32:36ama cd Downloads yazınca klasore girebiliyorum bunun sebebı nedir

Bu sefer kök dizindeki değil, içinde bulunduğum klasöre (dizine) bağlı Downloads klasörüne geçmek istiyorum emrini veriyorsunuz.
USE="peace justice" emerge --newuse --update --deep world

Minty

Merhabalar.
cd /....... şeklinde yazdığınız her "/" işareti aslında bir dosya hiyerarşisinin içerisine girmenizi sağlıyor. Eğer bulunduğunuz yerden aşama aşama girmek istediğinizde ise
cd "Klasör Adı" şeklinde yazmanız yeterli oluyor. Tabi burada dikkat etmeniz gereken şey hangi dizinde olduğunuz.
~~~~~   Bazı insanlar o kadar fakir ki tek sahip oldukları şey para...   ~~~~~

mhmtkrktr

cd komutu, doğrudan geçerli bir yol tanımlanmamışsa, ön yol olarak pwd komutundan tanımlama alıyor. Yani /Downloads olarak verdiğin komut pwd için geçersiz bir yol oluyor. Denemesini şu şekilde yapabilirsin,
Öncelikle pwd komutu, içinde bulunduğun dizini verir.
$ pwd
/home/kullanıcı


Downloads dizinine deneme adında bir dosya oluştur ve ardından şu komutu yürüt,

$ rm ${pwd}/Downloads/deneme

"Böyle bir dosya ya da dizin yok" hatası alırsın. Ancak şu şekilde verirsen,

$ rm ${pwd}Downloads/deneme

oluşturduğun deneme dosyası hata vermeden silinecektir.
Burada biz elle tam yolu vermediğimiz için, ${pwd} bizim bulunduğumuz dizini otomatik işlemiş oldu. cd komutunun da bu kısmı aynı mantıkla çalışıyor.
Tabii cd deki amaç dizine taşınma olduğu için şu şekilde bir komut anlamsız olsa da, olayı anlamak adına denenebilir.
${pwd}Downloads
Bu sebeple geçerli olan Downloads dizininin önüne koyduğun slash ( / ),  ${pwd} tanımlamasının yapısını bozuyor.

Hatta basit bir cd komutu ben yapayım.

#!/bin/bash

DZ=""

if [ $1 != "" ]; then
DZ=$(pwd)/$1
fi

read -p "" deger

VAR1=$(echo $deger | awk '{print $1}')
VAR2=$(echo $deger | awk '{print $2}')

$VAR1 $DZ/$VAR2


Bu betiği jctgu adında bir dosyaya yazar ve /usr/bin veya kullanıcı altında /bin dizinine koyup çalıştırma izni verirsin. Ardından ,
jctgu Downloads
komutunu verince senden komut isteyecek. Yukarıda ki örnekte olduğu gibi downloads dizininde ki deneme diye oluşturduğumuz dosyasını silelim mesela. Şu komutu vermen yeterli olacaktır.
rm deneme

Umarım açıklayabilmişimdir.

barış

Bütün modern işletim sistemlerinde dizinler bir hiyerarşik düzen içerisindedir. Örneğin "en_ust_dizin" isimli bir dizin olsun ve bunun altında 2 tane alt dizin olsun. Bu alt dizinler de "alt_dizin_1" ve "alt_dizin_2" olsun. Nerede peki? Şurada:
/en_ust_dizin/alt_dizin_1/alt_dizin_1_in_alt_dizini
/en_ust_dizin/alt_dizin_2/alt_dizin_2_nin_alt_dizini

Dizin dediğimiz, klasör. Sağ tuşla tıklayıp oluşturduğundan hani :)

Daha detaylı bilgi almak istersen şöyle alalım seni: https://wiki.ubuntu-tr.net/index.php?title=Linux_dosya_sistemi_hiyerarşisi

Gelelim "cd" komutuna. Bu komut, terminal ekranından bir dizine düşmek için kullanılıyor. Nasıl klasörün birine çift tıklayarak gidebiliyorsak, terminal ekranından da gidebiliriz.
Şimdi yukarıdaki örnekteki dizine gidelim:
Öncelikle farklı bir dizinde olduğumuzu var sayıyorum.
Biz şuradayız: "/farkli_bir_dizin"
Gitmek istediğimiz yer: "/en_ust_dizin/alt_dizin_1"
Gidelim:
cd /en_ust_dizin/alt_dizin_1Bu komutu verdiğimiz zaman "en_ust_dizin" isimli dizine düşmüş olacağız. "dir" veya "ls" gibi komutlarla da bu dizin içerisindeki klasörleri listeleyebiliriz.

Şimdi alt_dizin_1 içerisine düştük. Bundan sonra bu alt_dizin_1 içerisindeki dizinlere erişmek için herhangi bir dosya yolu belirtmemize gerek kalmadan sadece dizinin ismini versek yeterli. Çünkü cd komutundan sonra gelen parametre doğrudan uygulanır. Eğer başında belirli bir yol yoksa (mesela yukarıdaki dizin örnekleri bir yoldur) içerisinde bulunduğun dizinin içinde arar gitmek istediğin yeri.

Bu aşamada "alt_dizin_1_in_alt_dizini" klasörüne gitmek istediğimiz zaman sadece
cd alt_dizin_1_in_alt_dizini
yazarsak yeterli olacaktır. Çünkü zaten sen o esnada "/en_ust_dizin/alt_dizin_1"in içerisindesin. Bir üstteki komutu verdiğin zaman cd şöyle algılayacaktır:
cd /en_ust_dizin/alt_dizin_1/alt_dizin_1_in_alt_diziniFakat bunu yapmaya gerek yok.

Mantığını anlatmaya çalıştım. Özet geçecek olursam, içinde bulunduğun bir dizinin içerisindeki başka bir dizine gitmek istiyorsan tüm yolu belirtmene gerek yok. :)

Downloads dizinine "/" belirterek gidemiyorsun çünkü "/" altında Downloads diye bir dizin yok. O aslında "~/Downloads" olarak geçiyor. Buradaki "~" işareti de senin ev dizinin. Yani "/home/kullanici_adi". Downloads dizini de "/home/kullanici_adi/Downloads" altındadır. Aksini belirtmediğin sürece de terminal genelde ev dizininde açılacaktır.

bugra9

Eğer konu sizin için çözüldüyse şöyle bir uygulamamız var.
https://forum.ubuntu-tr.net/index.php?topic=31789.0