Gibi şeyleri işlemenize gerek yok ~, kabuk sizin için yapıyor. Bu yüzden ~/filenameherhangi bir komut dosyasına veya programa geçebilirsiniz ve çalışır - tüm bu programlar ~kendilerini işlemez , kabuğunuz argümanı dönüştürür ve /home/username/filenamebunun yerine programa aktarır:
$ echo ~/filename
/home/mrozekma/filename
Kurallı bir dosya adına (şunun gibi şeyler içermeyen bir dosyaya) ihtiyacınız varsa .., kullanın realpath(teşekkürler Neil ):
$ realpath ~/../filename
/home/filename
Bölünme dizin adı ve dosya adı, kullanıma yol gelince dirnameve basename:
$ dirname /foo/bar/baz
/foo/bar
$ basename /foo/bar/baz
baz