Faz com que todos os comandos obedeçam à hierarquia de diretórios de links simbólicos

2

Pelo menos no bash, por padrão, a opção set +P é configurada, o que faz com que determinados comandos como cd , pwd e tab-completion sigam a hierarquia de links simbólicos, em vez da hierarquia física. Mas muitos outros comandos, como ls , seguem apenas a hierarquia física.

Você pode fazer set -P para fazer com que todos os comandos sigam a estrutura de diretórios físicos (ou adicioná-los ao seu arquivo ~/.inputrc para permanência entre as sessões). Mas, e se eu quiser ir para o outro lado, para fazer todos (a maioria?) Comandos obedecerem à estrutura de diretórios simbólicos? Isso pode ser feito? Isso é específico para o bash? Alternativamente, existe uma maneira de fazer as coisas acreditarem que o diretório simbólico é físico? E, para esclarecer, estou procurando uma configuração para afetar o comportamento em todas as funções possíveis, não uma solução alternativa como readlink . O mais próximo que eu posso encontrar é esta solução alternativa .

Para um exemplo de como se pode obter resultados desagradáveis, continue lendo. Isso pode levar a um comportamento confuso, pois você pode concluir a tabulação para um arquivo / pasta que o comando que você está executando não conseguirá encontrar. Por exemplo (você pode ter que fazer set +P primeiro):

mkdir symtest1
mkdir symtest1/subdir
ln -s symtest1/subdir
touch youreinthebasedir         #a lovely file to show where you're looking
touch symtest1/youreinsymtest1  #yet another
pwd                             #shows where you are
cd subdir
pwd                             #should show the same plus "/subdir"
ls ../                          #should show the contents of "symtest1"

Agora, digite o seguinte com tab-completion,
ls ../youre guia
e ele será concluído em ../youreinthebasedir
mas aperte enter, e você receberá um erro que o arquivo não existe devido à discrepância acima mencionada.

Algumas discussões mais úteis podem ser encontradas aqui e aqui .

    
por TTT 01.10.2018 / 19:18

0 respostas