On Wed, Jul 21, 2004 at 04:35:44PM +0200, Krasimir Kazakov wrote:
> Здравейте,
> 
> наложи ми се скоро да направя скрипт, на който като подадеш ./file 
> или ../path/to/file или нещо такова, да записва /full/path/to/file 
> в /etc/fstab.
> 
> Проблема ми е, че не можах да намеря коя команда ми връща пълния път към 
> дадения файл. Трябва да има нещо просто и елементарно, но не можах да го 
> намеря дори в Google. Ако някой знае, ще съм благодарен да сподели как точно 
> се прави.

На повечето сравнително нови системи се прави с realpath(1):

[EMAIL PROTECTED] ~]> realpath .
/fs/home/roam
[EMAIL PROTECTED] ~]> realpath upload/firefox/
/fs/home/roam/upload/firefox
[EMAIL PROTECTED] ~]> realpath ../../../etc/passwd
/etc/passwd
[EMAIL PROTECTED] ~]>

Ако това не ти върши работа - системата, която използваш, няма realpath -
можеш да направиш магия с /bin/pwd.. нещо от сорта на:

[EMAIL PROTECTED]:p5 ~]$ FNAME='../../../etc/passwd'
[EMAIL PROTECTED]:p5 ~]$ ls $FNAME
../../../etc/passwd
[EMAIL PROTECTED]:p5 ~]$ ls -l $FNAME
-rw-r--r--  1 root  wheel  2316 24 Юни 12:30 ../../../etc/passwd
[EMAIL PROTECTED]:p5 ~]$ FULLNAME="`/bin/pwd`/$FNAME"
[EMAIL PROTECTED]:p5 ~]$ echo $FULLNAME
/fs/home/roam/../../../etc/passwd
[EMAIL PROTECTED]:p5 ~]$ ls -l $FULLNAME
-rw-r--r--  1 root  wheel  2316 24 Юни 12:30 /fs/home/roam/../../../etc/passwd
[EMAIL PROTECTED]:p5 ~]$

Така във $FULLNAME получаваш нещо, което не е точно пълен път, макар
че започва от /, но поне е път, който започва от /, макар че съдържа
на няколко места '..'.

Най-добре виж дали имаш realpath; то ще ти даде наистина истински път.

Поздрави,
Петър

-- 
Peter Pentchev  [EMAIL PROTECTED]    [EMAIL PROTECTED]    [EMAIL PROTECTED]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
If wishes were fishes, the antecedent of this conditional would be true.

Attachment: pgp1cXIGpBbOc.pgp
Description: PGP signature

Reply via email to