configure
по существу сценарий оболочки, загруженный от макросов M4, таким образом, можно использовать $*
захватить все аргументы ./configure
. Согласно autoconf руководству необходимо сделать это правильно после AC_INIT
, например:
AC_INIT([My Program], 1.0, ...)
config_flags="$*"
AC_DEFINE_UNQUOTED([CONFIG_FLAGS],["$config_flags"],[Flags passed to configure])
Это будет #define CONFIG_FLAGS
в config.h.
С GNU:
cd ~/path/to/dirs || exit 1
find /path/to/dirs -type d -printf %P\\0 | xargs -0 mkdir -p
find /path/to/dirs -type f -print0 |
xargs -0 cp --symbolic-link --parents --target-directory=.
С GNU coreutils (т.е. на невстроенном Linux или Cygwin):
cp -al /path/to/dirs ~/path/to/dirs
Если Ваш cp
не имеет -l
опция, сделайте первичную обработку для создания иерархии каталогов, затем вторая передача для символьных ссылок:
find /path/to/dirs -type d -exec sh -c 'for x do mkdir "$HOME$x"; done' _ {} +
find /path/to/dirs ! -type d -exec sh -c 'for x do ln -s "$x" "$HOME$x"; done' _ {} +
Можно объединить две передачи в единственную команду, если Вы предпочитаете:
find /path/to/dirs -exec sh -c '
for x do
if [ -d "$x" ]; then
mkdir "$HOME$x"
else
ln -s "$x" "$HOME$x"
fi
done
' _ {} +
cp --no-dereference orig dest
Это позволит сохранить символические ссылки при копировании. Вот документация:
-P, --no-dereference never follow symbolic links in SOURCE
-p same as --preserve=mode,ownership,timestamps