Como criar softlinks para todos os arquivos em um diretório em um diretório diferente no terminal?

Como criar softlinks para todos os arquivos em um diretório em um diretório diferente no terminal?

Fazer ln -fs ./source/*no diretório de destino não funciona

Isto mostra:

./source/file1 is not a directory

Responder1

De man ln:

SINOPSE

   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)

DESCRIÇÃO

No 1º formulário, crie um link para TARGET com o nome LINK_NAME. Na 2ª forma, crie um link para TARGET no diretório atual. Nas 3ª e 4ª formas, crie links para cada TARGET no DIRETÓRIO. Crie links físicos por padrão, links simbólicos com --symbolic.

Lendo com atenção, você verá que (assumindo que a pasta de origem contém mais de um arquivo) você usou a 3ª forma. Como você não especificou um diretório, o último nome de arquivo é interpretado como diretório.

Se você estiver dentro do diretório onde deseja criar os links simbólicos, você pode simplesmente adicionar .(diretório atual) no final do comando:

ln -fs ./source/* .

Responder2

Eu queria/precisava fazer alguma coisa e o @danzel deu a melhor resposta. Aqui está o que eu precisava: criar um símbolo dentro da pasta de plugins do WordPress para outra pasta dentro da raiz da instalação do WordPress.

  1. navegue até a pasta
  2. certifique-se de que estou na pasta certa
  3. liste todos os itens da pasta
  4. crie o link simbólico

Aqui estão os comandos:

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

informação relacionada