Kısayol farklı çalışıyor

Başlatan Ali Osman, 17 Mart 2016 - 00:56:40

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Ali Osman

Daha önce sorduğum sorularda arkadaşlar sağoulsun oldukça yardımcı olmuştu. Ama linux'ta yeniyim ve linux'ta kısayolun çalışma mantığını anlayamadım. Şöyleki:
home/ali/Belgler/projeler adında bir klasör var. Bu klasör içinde prg adında çalıştırılabilir bir dosya (windows'teki exe) ve aynı klasörde şifreler.txt adlı bir metin belgesi var. prg'nin kısayolunu usr/local/bin dizinine attım. Konsoldan prg+enter yaptığımda program çalışıyor. Ama sorun şu ki exe'nin bulunduğu klasörden programı çalıştırdığım zaman aynı klasördeki metin dosyasını okuyup içindeki şifreyi alıyor. Fakat usr/local/bin klasöründeki kısayoldan çalıştırdığım zaman metin belgesini görmüyor. Metin belgesini de kısayolun bulunduğu usr/local/bin dizinine attığım zaman düzgün çalışıyor. Halbuki kısayol home/ali/Belgeler/projeler'deki exe'ye ait. Programı kısayoldan çalıştırdığım zaman neden exe'nin bulunduğu klasördeki metin belgesini görmüyor. O zaman kısayol kullanmanın ne anlamı kalır?

cagriemer

Calistirilabilir dosyanin icindeki dosya yolu bagil (relative) ise yani /home/kullanici/metin.txt yerine metin.txt olarak girilmisse tecrube ettiginiz davranisi gosterir. Ustesinden gelmenin hemen aklima gelen iki yolu var. Ya dosya yolunu bagil degil de kesin (absolute) olarak tanimlayacaksiniz. Ya da calistirilabilir dosyaya calistirirken bir parametre gecireceksiniz, parametre gecirmediginiz durumlarda varsayilan olarak kesin yolu verilmis olan dosyayi isleyecek.

Ali Osman

Kesin yolu verdiğimde program başka bir makinada farklı bir dizinde ise problem çıkar. Parametre derken pragramı çalıştırırken parametre ile mi çağıracağız?

cagriemer

Evet. Yani "program --dosya /dizin/yolu" ya da dogrudan "program /dizin/yolu" olarak cagiracaksiniz. Ilk ornekte --dosya secenegi ile programinizdaki ilgili parametreye gecirdiniz arguman /dizin/yolu olacak.