Как я копирую файлы символьной ссылки и каталоги?

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.

1
01.09.2017, 03:45
3 ответа

С 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=.
0
28.01.2020, 02:05

С 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
' _ {} +
0
28.01.2020, 02:05
cp --no-dereference orig dest

Это позволит сохранить символические ссылки при копировании. Вот документация:

 -P, --no-dereference         never follow symbolic links in SOURCE
 -p                           same as --preserve=mode,ownership,timestamps
0
08.04.2020, 15:18

Теги

Похожие вопросы