Gerar links simbólicos com nomes compostos

1. Gerar links simbólicos com nomes compostos

Mauriciodez
Mauriciodez

(usa Debian)

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



  


2. Gerar links simbólicos com nomes compostos

Edmar
edmarssouzap

(usa Debian)

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

Marcelo Oliver
msoliver

(usa Debian)

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

Mauriciodez
Mauriciodez

(usa Debian)

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

Marcelo Oliver
msoliver

(usa Debian)

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

Mauriciodez
Mauriciodez

(usa Debian)

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 |-----------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts