Bazen uzun bir mutlak yol, örneğin bir linux aracına yönelik bir komut satırı parametresinde, geçerli çalışma dizini başvuru olarak kullanılarak kısaltılabilir:
$ pwd
/home/heh
$ cat /home/heh/mydir/myfile
my stuff
$ cat mydir/myfile
my stuff
Bu meydan okumada, iki parametre alan bir işlev veya program yapmalısınız:
- Linux formatını kullanarak mutlak yol (ile başlar
/
) - Aynı dizini kullanarak geçerli dizin
Çıktı aşağıdakilerden daha kısadır:
- Giriş 1 değişmedi
- Mutlak yolla aynı dosyaya / dizine başvuran göreceli yol
İnce noktalar:
- İşletim sisteminiz linux ile uyumluysa, giriş olarak almak yerine sistemin geçerli dizinini kullanabilirsiniz
- Girişlerin yalnızca alfasayısal karakterler (ve yol ayırıcılar) içerdiğini varsayabilirsiniz.
- Girilen mutlak yolun
/
sonunda bir yol ayırıcısı olmadığını varsayabilirsiniz. - Sen girdi geçerli dizinin yolunu ayırıcı vardır varsayabiliriz
/
sonunda - Mutlak yolun var olan bir dosyaya başvurduğunu veya herhangi bir kısmının erişilebilir bir dizin olduğunu varsayamazsınız; ancak, geçerli dizinin geçerli olduğu varsayılabilir
- Her iki yolun yakınında herhangi bir sembolik bağ olmadığını varsayabilirsiniz - çünkü sembolik bağlantılarla başa çıkmak için özel bir yol istemiyorum
- Girişlerden birinin kök dizin olduğu durumu desteklemeye gerek yoktur
- "Geçerli dizin" çıktısı alınmalıdır
.
(boş bir dize geçerli değil)
Test senaryoları (giriş1, giriş2, çıkış):
/home/user/mydir/myfile
/home/user
mydir/myfile
/var/users/admin/secret/passwd
/var/users/joe/hack
../../admin/secret/passwd
/home/user/myfile
/tmp/someplace
/home/user/myfile
/dir1/dir2
/dir1/dir2/dir3/dir4
../..
/dir1/dir2
/dir1/dir2
.
/home/test /home/user/mydir/myfile /home/test
ve/a/b /a/b/d/e /a/b
/
". Ancak, örneklerinizde durum böyle değildir.