billig kamagra cialis køb precio viagra argentina acheter du viagra en ligne medicamento viagra comprar cialis generico prix tadalafil viagra preise apotheke acheter kamagra inde levitra kaufen kamagra 100 kautabletten clomid comprimé comprar viagra masticable viagra efeitos viagra prijs
forum achat cialis cialis farmacia prezzo viagra bruxelles cialis super actif propecia filmtabletten acheter du cialis en belgique firmel cialis super kamagra billig levitra farmaco tadalafil fabriqué inde viagra preço viagra generika indien viagra generico europa cialis prescrizione viagra en allemagne

Resolve Symlinks When Copying Files With Rsync

In a project I’m working on there is a structure where images and css are common for some of the subprojects. One folder has static pages for testing HTML + CSS layout. This folder has some symlinks to the /css folder and /images folder.

Now, on my Mac during normal development, this works perfectly. But I also wanted to access the static HTML files via my virtual windows machine. And I cannot follow the unix symlinks from my virtual windows machine!

My solution was to copy the files to another folder with rsync, which can then resolve the symlink into real files.

#!/bin/sh # set -x # Script will copy contents of current dir (except the files defined in _exclude_list) # into it's own separate folder. It will also expand symlinks so that windows users # can use the script directly # Created 2009-10-14 by Jesper Rønn-Jensen echo ".* _*" > _exclude_list.txt cd `dirname $0` BASE=`pwd -P` DEST=`dirname ~/src/htmlguide` #remember trailing slash of parent FLAGS=' -av --exclude-from _exclude_list.txt --delete' rsync $FLAGS --copy-dirlinks $BASE $DEST/ #remember trailing slash at destination

The rsync flag

–copy-dirlinks

does the magic by expanding all symlinks and copying the files. Besides from that, I make sure to

–delete

files no longer present in the source folder.

I decided to use rsync in stead of for example a webserver, as this approach is more portable, and I can then zip the static files or deploy them elsewhere.

If you want to improve on the script, feel free to fork it on github gist 210796.

2 Responses to “Resolve Symlinks When Copying Files With Rsync”

  1. Frank Lynch Says:

    i think it would be better to create two different folder for codes and for stuffs (images and libraries), and then merge them to one, and then access it from server, that will be great idea to differ them.

  2. James Dowling Says:

    Hi Jesper,

    I found this post looking for the –copy-dirlinks flag. Unfortunately, whatever post-processor is being used on thsi blog is outputting non-ascii dashes and I ended up with the following output:

    rsync: -\#342\#200\#223copy-dirlinks: unknown option

    Perhaps you could update this post to use ascii minus instead, so others don’t run into this problem.