2015-05-07 4 views
1

Я пытаюсь создать скрипт, который будет создавать символические ссылки из папки на 1 уровень вверх, и я использую следующим образом:Bash скрипт для создания символических ссылок

symlinks.sh

ln -s '../config/environments' > 'environments' 
ln -s '../config/init' > 'init' 

среды является папка и init - это файл.

и когда я иду в папку, где symlinks.sh есть и выполнить ./symlinks.sh, его создание 4 файлов, которые:

  1. среды
  2. среды?
  3. init
  4. init?

Я также попытался:

ln -s '../config/environments' . 
ln -s '../config/init' . 

, но с этим, инициализации создается в текущей папке и среды идет в папку ../config/environments/environments

Может кто-нибудь мне помочь пожалуйста?

ответ

3

Это потому, что вы перенаправляете вывод «>». Вам не нужно делать это с помощью ln, он автоматически создаст символическую ссылку в текущем каталоге, если вы используете:

ln -s "../config/environments" 
ln -s "../config/init" 
+0

Я тоже попробовал это, но я не упомянул. Результат для этого дал мне среду? и init? в той же папке. я просто попробовал это снова и тот же результат. почему существует «?» в конце? fyi: im, используя putty, и когда i 'ls' в каталоге создаются 2 файла красного цвета. – user2707590

+0

@ user2707590 Существует ли '../ config/environment'? Что говорят 'ls -l среды'? Что говорят «stat environment» и «stat -L environment»? –

+0

все 3 команды говорят мне Нет такого файла или каталога, и да ../config/environments действительно существует – user2707590

Смежные вопросы