Pular para o conteúdo

Gerar links simbólicos com nomes compostos

Responder tópico
  • Denunciar
  • Indicar

1. Gerar links simbólicos com nomes compostos

Enviado em 19/10/2017 - 22:04h

pessoas ... listo diretórios e crio links simbólicos para eles em uma pasta no /home com o nome original, 99% funciona ... acontece q quando os diretórios tem nome compostos ele gera um link para cada parte. como arrumar isso ??

dir="/mnt/Arquivos/"
dir1="/home/$USER/pastaX/"
for x in $(ls $dir)
do
ln -s $dir$x $dir1$x
done

Responder tópico

2. Gerar links simbólicos com nomes compostos

Enviado em 19/10/2017 - 22:29h

Boa noite, amigo.

Bem, o prompt do Linux reconhece espaços como parâmetros para comandos, portanto para o shell entender um nome composto separado por espaço como um único nome, basta que você coloque entre aspas simples ('), por exemplo:

ln -s arquivo_original 'este e um nome de arquivo composto'

Só mais um detalhe: hard link só é reconhecido dentro do mesmo filesystem.

Espero ter ajudado.


Att,
Edmar de Souza

3. Re: Gerar links simbólicos com nomes compostos

Enviado em 19/10/2017 - 23:18h

Mauriciodez escreveu:

pessoas ... listo diretórios e crio links simbólicos para eles em uma pasta no /home com o nome original, 99% funciona ... acontece q quando os diretórios tem nome compostos ele gera um link para cada parte. como arrumar isso ??

dir="/mnt/Arquivos/"
dir1="/home/$USER/pastaX/"
for x in $(ls $dir)
do
ln -s $dir$x $dir1$x
done
Mauricio, boa noite.
Usando o DESCRITOR de ARQUIVOS deve funcionar:

dir="/mnt/Arquivos/"
dir1="/home/$USER/pastaX/"
exec 3< <(ls -1 $dir)
while read arq <&3;do
ln -s ${dir}${arq} ${dir1}${arq}
done
exec 3<&-


Att.:
Marcelo oliver

4. Re: Gerar links simbólicos com nomes compostos

Enviado em 19/10/2017 - 23:58h

msoliver escreveu:
Mauricio, boa noite.
Usando o DESCRITOR de ARQUIVOS deve funcionar:

dir="/mnt/Arquivos/"
dir1="/home/$USER/pastaX/"
exec 3< <(ls -1 $dir)
while read arq <&3;do
ln -s ${dir}${arq} ${dir1}${arq}
done
exec 3<&-


Att.:
Marcelo oliver
o fanfarrão ... kkkkkkk ... vc posta as paradas e não explica ... eu lá sei o q é descritor de arquivos ??? como muito custo fiz esse loop que não funciona 100% .. ajuda aí tio !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

5. Re: Gerar links simbólicos com nomes compostos

Enviado em 20/10/2017 - 13:44h

Mauriciodez escreveu:

msoliver escreveu:
Mauricio, boa noite.
Usando o DESCRITOR de ARQUIVOS deve funcionar:

dir="/mnt/Arquivos/"
dir1="/home/$USER/pastaX/"
exec 3< <(ls -1 $dir)
while read arq <&3;do
ln -s ${dir}${arq} ${dir1}${arq}
done
exec 3<&-


Att.:
Marcelo oliver
o fanfarrão ... kkkkkkk ... vc posta as paradas e não explica ... eu lá sei o q é descritor de arquivos ??? como muito custo fiz esse loop que não funciona 100% .. ajuda aí tio !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

Cara, essa explicação vou ficar devendo . . . Pouco sei do "Descritor de Arquivos"
Essa foi uma das alternativas que encontrei, qdo se tem nomes compostos e com espaço . . .
A outra, é setar o "IFS" para "\n".
O problema ocorre, devido a var "IFS" (internal field separator), veja:
ls -1 *.txt
Arquivo Novo_1.txt
Arquivo Novo_2.txt
Arquivo Novo_3.txt
for ARQ in $(ls -1 *.txt);do echo "$ARQ";done
Arquivo
Novo_1.txt
Arquivo
Novo_2.txt
Arquivo
Novo_3.txt
Setando IFS para "\n"
OIFS="$IFS" #"guarda" o valor antigo de IFS
IFS="\n"
for ARQ in $(ls -1 *.txt);do echo "$ARQ";done
Arquivo Novo_1.txt
Arquivo Novo_2.txt
Arquivo Novo_3.txt
IFS="$OIFS"

Veja a minha postagem de Nº 9 no endereço abaixo:
https://www.vivaolinux.com.br/topico/Shell-Script/Atribuir-resultado-do-comando-find-arquivos-com-es...

Att.:
Marcelo Oliver

6. Re: Gerar links simbólicos com nomes compostos

Enviado em 20/10/2017 - 19:48h

msoliver escreveu:
Cara, essa explicação vou ficar devendo . . . Pouco sei do "Descritor de Arquivos"
A outra, é setar o "IFS" para "\n".
O problema ocorre, devido a var "IFS" (internal field separator), veja:
ls -1 *.txt
Arquivo Novo_1.txt
Arquivo Novo_2.txt
Arquivo Novo_3.txt
for ARQ in $(ls -1 *.txt);do echo "$ARQ";done
Arquivo
Novo_1.txt
Arquivo
Novo_2.txt
Arquivo
Novo_3.txt
Setando IFS para "\n"
OIFS="$IFS" #"guarda" o valor antigo de IFS
IFS="\n"
for ARQ in $(ls -1 *.txt);do echo "$ARQ";done
Arquivo Novo_1.txt
Arquivo Novo_2.txt
Arquivo Novo_3.txt
IFS="$OIFS"

Veja a minha postagem de Nº 9 no endereço abaixo:
https://www.vivaolinux.com.br/topico/Shell-Script/Atribuir-resultado-do-comando-find-arquivos-com-es...

Att.:
Marcelo Oliver
velho ... se vc não sabe me explixar eu nem vou fazer ... não é meu estilo fazer as paradas sem compeender ( coisa de velho. kkkkkkkkkkk ) ... vou fazer então com SED ... troco espaço por alguma coisa depois destroco !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder