Поведение Asterisk при создании ссылок

Я пытаюсь создать символические ссылки для набора файлов.

Предположим, я хочу связать все файлы с расширением pdf из origin_directory в настоящий каталог.

До сих пор у меня есть эта команда:

 ln -nfs origin_directory/*.pdf -t . 

Это прекрасно работает. Проблема возникает, если у меня нет файла pdf в origin_directory , потому что в этом случае файл *.pdf создается в моем текущем каталоге и является неработающей ссылкой.

Есть ли способ избежать этого?

2 Solutions collect form web for “Поведение Asterisk при создании ссылок”

на bash это сработает

 if [ -e origin_directory/*.pdf ] ; then ln -nfs origin_directory/*.pdf . ; fi 

EDIT: Если у вас слишком много файлов

 if [ $(ls origin_directory/*.pdf | wc -l) -gt "0" ] ; then ln -nfs origin_directory/*.pdf . ; fi 

Если вы используете bash , сначала выполните

 shopt -s failglob 

Или лучше, положите в свой .bashrc

Теперь, когда вы это делаете:

 ln -nfs origin_directory/*.pdf -t . 

Это будет успешным или неудачным (с сообщением об ошибке и ничего не сделайте).


из руководства

failglob Если установлено, шаблоны, которые не соответствуют именам файлов во время расширения пути, приводят к ошибке расширения.

  • Символы по глубине каталога
  • Как перестроить /etc/cron.d на CentOS?
  • изменить дату символической ссылки на bindfs
  • Возможности исполняемой символической ссылки на неисполняемый файл в Linux?
  • Как определить, является ли цель софт-ссылки каталогом или файлом?
  • Преобразование абсолютной символической ссылки в относительную символическую ссылку с помощью простой команды Linux
  • Список символических ссылок в текущем каталоге?
  • Показать содержимое символической ссылки
  • Символическая ссылка, начинающаяся с. #
  • Есть ли способ не создавать сим-ссылку, если существует папка
  • Есть ли у Symbian ссылки по умолчанию?
  • Linux и Unix - лучшая ОС в мире.