Как создать программные ссылки на все файлы в каталоге, находящемся в другом каталоге в терминале?

Как создать программные ссылки на все файлы в каталоге, находящемся в другом каталоге в терминале?

Выполнение ln -fs ./source/*в целевом каталоге не работает

Это показывает:

./source/file1 is not a directory

решение1

От man ln:

СИНОПСИС

   ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
   ln [OPTION]... TARGET                  (2nd form)
   ln [OPTION]... TARGET... DIRECTORY     (3rd form)
   ln [OPTION]... -t DIRECTORY TARGET...  (4th form)

ОПИСАНИЕ

В 1-й форме создайте ссылку на TARGET с именем LINK_NAME. Во 2-й форме создайте ссылку на TARGET в текущем каталоге. В 3-й и 4-й формах создайте ссылки на каждую TARGET в DIRECTORY. Создавайте жесткие ссылки по умолчанию, символические ссылки с помощью --symbolic.

Внимательно прочитав его, вы увидите, что (предполагая, что исходная папка содержит более одного файла) вы использовали 3-ю форму. Поскольку вы не указали каталог, последнее имя файла интерпретируется как каталог.

Если вы находитесь внутри каталога, в котором хотите создать символические ссылки, вы можете просто добавить .(текущий каталог) в конце команды:

ln -fs ./source/* .

решение2

Я хотел/нуждался в чем-то, и @danzel дал лучший ответ. Вот что мне было нужно: создать символический файл в папке плагина WordPress в другой папке в корне установки WordPress.

  1. перейдите в папку
  2. убедитесь, что я нахожусь в правильной папке
  3. перечислить все элементы в папке
  4. создать символическую ссылку

Вот команды:

$ cd wp-content/plugins
$ pwd
$ ls -al
$ ln -s ../../my-folder-with-subfolders/subfolder-name/* .
$ ln -s ../../my-folder-with-subfolders/another-subfolder/* .

Связанный контент