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.
pgp1cXIGpBbOc.pgp
Description: PGP signature
