Percebi que ls -l
isso não altera apenas a formatação da saída, mas também como os links simbólicos do diretório são tratados:
> ls /rmn
biweekly.sh daily.sh logs ...
> ls -l /rmn
lrwxrwxrwx 1 root root 18 Feb 11 2011 /rmn -> /root/maintenance/
Gostaria de obter uma lista detalhada do /rmn
conteúdo, não informações sobre o /rmn
link simbólico.
Uma solução alternativa que posso pensar é criar uma função shell que faça algo assim:
cd /rmn
ls -l
cd -
Mas isso parece muito hacky, especialmente porque atrapalha o próximo uso de cd -
. Existe uma maneira melhor?
(Estou no CentOS 2.6.9)
Respostas:
Veja se o seu ls tem as opções:
Se isso não ajudar, você pode fazer sua macro funcionar sem estragar
cd -
fazendo:que é executado em um subshell.
fonte
-H
, e isso fez o truque. Obrigado!--dereference-command-line-symlink-to-dir
tivesse uma forma curta.Não entendo por que o pensamento sobre esse problema simples tem que ser tão complexo - mas talvez eu tenha entendido a pergunta da maneira errada. Enfim: quando eu precisava de uma funcionalidade semelhante, eu usava:
Isso fez o truque no meu caso. Na
ls
página do manual:Por exemplo, criei um
/media/stick
atalho para acessar os dados no meu pen drive.ls -l /media/stick
mostrará o link real, enquantols -lL /media/stick
mostrará o conteúdo no pen drive.Depois de uma pesquisa mais profunda sobre a diferença entre o funcionamento interno de
-H
e-L
, finalmente encontrei um excelente artigo sobre esse assunto no blog Shallow Thoughts (mesmo apresentando alguns truques de script de shell para seu prazer!)Isso aponta as diferenças sutis entre as duas opções (muito melhores que o manual original!) Da seguinte maneira:
-H
- desreferenciar apenas os links mencionados explicitamente na linha de comando-L
- links dereference mesmo que sejam não mencionados na linha de comando(Quando esses dois são usados com tarefas cotidianas simples , não deve haver diferença na saída em geral.)
Além disso: Se você preferir se lembrar da forma longa (
--option
), provavelmente é menos complicado de memorizar do--dereference
que o monstro excessivamente longo de--dereference-command-line-symlink-to-dir
.fonte
faria isso ou
No entanto, o comportamento não deve ser diferente com e sem
-l
. Você tem um apelido parals
?fonte
ls
bandeiras são loucas.-l
torna o-H
padrão desativado, assim como-F
. Veja coreutils - Quais arquivos estão listados .ls='ls -F'
apelido, na verdade.