Як я пов'язую кожен файл з одного каталогу до іншого каталогу?


15

Якщо у мене є каталог /fooз декількома файлами в ньому, як я симлінк кожну записи в /fooв /bar/?

Наприклад, якщо /fooє файли a, bі cя хочу створити три посилання:

  • /bar/a -> /foo/a
  • /bar/b -> /foo/b
  • /bar/c -> /foo/c

Ви впевнені, що не хочете просто позначити смугу на foo?
Багатий Бредшоу

Фактичне застосування цього полягає в тому, що я встановив програму і хотів би перемістити її виконувані файли в стандартну папку в моєму $ PATH, а не додавати встановлену в шлях.
Стівен

Здається, було б кращою ідеєю просто налаштувати його --prefix=.
Привіт71

Відповіді:


18

Ви можете використовувати (GNU) cpз --symbolic-linkопцією:

prompt$ mkdir foo
prompt$ cd foo
prompt$ touch a b c
prompt$ mkdir ../bar
prompt$ cd ../bar
prompt$ cp --symbolic-link ../foo/* .
prompt$ ls -l
total 0
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 a -> ../foo/a
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 b -> ../foo/b
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 c -> ../foo/c
prompt$

Це, здається, саме рішення. Дивовижно!
Стівен

Це дуже ідеально.
noraj

будь-який спосіб змусити це застосувати і до каталогів? Коли я запускаю це, я отримую попередження "cp: опущення каталогу" ./baz '"
solidau

15

Спробуйте:

ln -s /foo/* /bar

Каталог джерел, як зазначено в запитанні, є /foo. Зауважте, що він повинен бути повністю вказаний (тобто, починаючи з кореневого каталогу), тому інші приклади виглядатимуть так:

ln -s /some/dir/with/baz/* destdir
ln -s /dir/to/link/from/* /dir/to/link/to
ln -s $PWD/stuff/* more/stuff

це навіть працює?
ctrlc-root

@ root.ctrlc: Ви повинні вказати повний шлях джерела (що є /в моїй оригінальній відповіді). Я додам уточнення.
Призупинено до подальшого повідомлення.

Я думаю, що якщо ви хочете скопіювати все як символьне посилання тільки однією командою, вам доведеться використовувати cp -s, як @hlovdal відповідь, cp -rs /var/www/folder/ .копіює всі файли підпапок у симпосилання, а не як ln -s /var/www/folder/ .хто дублював файли папок на моєму комп’ютері.
baptx

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.