07-12-2005
expanding dotted paths to absolute ones in bash or sh
I have a little script to help me manage a gallery of image files. It makes symbolic links to every file in and below the current directory, placing them in a target directory which is passed to the script as a parameter. Unfortunately, the script pukes when I pass a parameter that contains dotted paths.
$ linkall /home/joe/foo
$ linkall ~/foo
work beautifully. The latter one works because the parameter is expanded before it is passed.
But,
$ linkall ../foo
pukes.
Does anyone know of a way to expand the passed parameter into an absolute path? I've tried everything I can think of. I'm having a hard time even thinking of the right query to Google for. Whenever that happens, I look for a forum.
It seems to me that I'm probably looking for some code that gets used in a lot of scripts; basically boilerplate that I've just never come across yet.
Other than by strictly using absolute paths, I can't think of any workarounds off the top of my head.
I can post the script if that would help. It's 68 lines.
Last edited by TanRanger; 07-12-2005 at 07:18 PM..
10 More Discussions You Might Find Interesting
1. Post Here to Contact Site Administrators and Moderators
Can you guys please enable the "dotted" icon option, so that the thread icon for a thread in which a user has posted in will appear with a dot in it?
Thanks,
Aaron (2 Replies)
Discussion started by: Spetnik
2 Replies
2. AIX
Hi People,
Please advise if there is a command to retrieve the list of functions (user-defined) available at any certain point?
Cheers (1 Reply)
Discussion started by: easwam
1 Replies
3. UNIX for Dummies Questions & Answers
Hi,
The following code finds the line containing fruits in test.txt and replaces instances of apple with banana.
ed -s test.txt <<< $'/fruits/s/apple/banana/g\nw'
What I want to do is put variables in the place of fruits, apple and banana.
I have tried replacing ' with " to get... (2 Replies)
Discussion started by: de_la_espada
2 Replies
4. UNIX for Dummies Questions & Answers
Can someone cofirm that I have got the paths correct here? :confused:
$PATH_TO_TMP_DIR='/tmp';
#$PATH_TO_TMP_DIR='home/tmp';
$PATH_TO_YOUR_IMG_DIR = '/temp_images';
#$PATH_TO_YOUR_IMG_DIR = 'home/public_html/Midwich/temp_images';
Thanks (1 Reply)
Discussion started by: stubie
1 Replies
5. Shell Programming and Scripting
Hi,
I need to write an bash script which works like it can copy files from remote machine through ssh to the server where script is running in zip format with the structure i want. I don't want to get absolute path in zip archive. Please let me know how it can be possible.
ssh... (4 Replies)
Discussion started by: mirfan
4 Replies
6. Solaris
Hi,
How do I extract data from TAR excluding absolute paths for Tar? (Solaris)
Thanks (3 Replies)
Discussion started by: zam
3 Replies
7. Shell Programming and Scripting
i have some script with some paths inside it. The idea is to some files which is on desktop copy and move to another location. Problem is that inside script is similar to this:
cp test1.zip /root/help/
because I allways have another zip files, does it possible to have some input which ask me... (18 Replies)
Discussion started by: tomislav91
18 Replies
8. Shell Programming and Scripting
I am able to list all the filenames under a directory & its sub-directories except blent.tar on Linux
find "/tmp/" -type f | grep -v blent.tar | rev | cut -d '/' -f1 | rev
Desired Output:
THIRDPARTYLICENSEREADME.txt
javaws
libjavaplugin_oji.so
libjavaplugin_oji.so... (3 Replies)
Discussion started by: mohtashims
3 Replies
9. UNIX for Beginners Questions & Answers
I pass an argument to bash as run. The first command in green executes as expected, however the second in blue fails as the $run does not expand. I tried to escape the variable with \ thinking the quotes were making the literal translation and also "${run}" but both did not work to expand the... (3 Replies)
Discussion started by: cmccabe
3 Replies
10. UNIX for Beginners Questions & Answers
Hi Guys,
I wrote a collection of bash functions years ago and now need to use them again but
I'm getting some error messages when eval tries to expand the variables names.
I recollect that I used the shopt command to set one of the options but I can't quite
remember the command that I... (8 Replies)
Discussion started by: ASGR
8 Replies
symlink(4) Kernel Interfaces Manual symlink(4)
NAME
symlink - symbolic link
DESCRIPTION
A symbolic (or soft ) link is a file whose name indirectly refers (points) to a relative or absolute path name.
During path name interpretation, a symbolic link to a relative path name is expanded to the path name being interpreted, and a symbolic
link to an absolute path name is replaced with the path name being interpreted.
Thus, given the path name
If is a symbolic link to a relative path name such as the path name is interpreted as
If is a symbolic link to an absolute path name such as the path name is interpreted as
All symbolic links are interpreted in this manner, with one exception: when the symbolic link is the last component of a path name, it is
passed as a parameter to one of the system calls: or (see readlink(2), rename(2), symlink(2), unlink(2), chown(2) and lstat(2)). With
these calls, the symbolic link, itself, is accessed or affected.
Unlike normal (hard) links, a symbolic link can refer to any arbitrary path name and can span different logical devices (volumes).
The path name can be that of any type of file (including a directory or another symbolic link), and may be invalid if no such path exists
in the system. (It is possible to make symbolic links point to themselves or other symbolic links in such a way that they form a closed
loop. The system detects this situation by limiting the number of symbolic links it traverses while translating a path name.)
The mode and ownership of a symbolic link is ignored by the system, which means that affects the actual file, but not the file containing
the symbolic link (see chmod(1)).
Symbolic links can be created using or (see ln(1) and symlink(2)).
AUTHOR
was developed by HP and the University of California, Berkeley.
SEE ALSO
cp(1), symlink(2), readlink(2), link(2), stat(2), mknod(1M).
symlink(4)