[+] bashologia - pełna ścieżka do pliku

Potrzebujesz pomocy z C, C++, perl, python, itp.
torrmen
Posty: 65
Rejestracja: 04 lutego 2013, 16:42
Lokalizacja: Wrocław (głównie)

[+] bashologia - pełna ścieżka do pliku

Post autor: torrmen » 22 maja 2016, 16:23

Witam,

mam obecnie problem który mogę rozwiązać pisząc duży kawałek kodu ale może nie potrzebnie. Może ktoś z Was zna lepszy sposób.

Otóż mamy skrypt który ma wypluć pełną ścieżkę do pliku który podajemy w parametrze nr 1

mamy przykładowe 2 pliki :
1) /var/www/site/functions/users.php
2) /home/user/Desktop/folder1/folder2/folder3/file.sh

skrypt mieści się w /var/project/scripts/script.sh

i teraz tak...

Kod: Zaznacz cały

cd /var/project/scripts
$: ./script.sh /var/www/site/functions/users.php 
PATH : /var/www/site/functions/users.php
$: cd ..
$: scripts/script.sh /var/www/site/functions/users.php 
PATH : /var/www/site/functions/users.php
$: scripts/script.sh ../../www/site/functions/users.php 
PATH : /var/www/site/functions/users.php

cd /var/project/scripts
$: ./script.sh /home/user/Desktop/folder1/folder2/folder3/file.sh
PATH :  /home/user/Desktop/folder1/folder2/folder3/file.sh
$: cd ..
$: scripts/script.sh  /home/user/Desktop/folder1/folder2/folder3/file.sh
PATH :  /home/user/Desktop/folder1/folder2/folder3/file.sh
$: scripts/script.sh  ../../../home/user/Desktop/folder1/folder2/folder3/file.sh
PATH :  /home/user/Desktop/folder1/folder2/folder3/file.sh
Chodzi o to aby niezależnie od tego czy ścieżka będzie pośrednia czy bezpośrednia to skrypt wypluł zawsze prawidłową ścieżkę do pliku jako bezpośrednią. Jak wspomniałem - da się to zrobić pisząc ładny kawałek kodu ale może ktoś zna lepszy sposób? Oczywiście locate odpada bo może być kilka plików o danej nazwie a chodzi o jeden konkretny z parametru.

Kojarzycie coś co może pomoże ?

torrmen
Posty: 65
Rejestracja: 04 lutego 2013, 16:42
Lokalizacja: Wrocław (głównie)

Re: bashologia - pełna ścieżka do pliku

Post autor: torrmen » 22 maja 2016, 18:18

Ok - problem można rozwiązać używając pwd i realpath :)

temat do zamknięcia

Zablokowany