http://www.zago.eti.br/ls.txt FAQ, dicas e exemplos do uso do comando ls, listar arquivos e diretórios, semelhante ao DOS, ls tem muito mais recursos e opções. Use CTRL+F para refinar a pesquisa. Linha de: **************** sapara mensagens ou tópicos. Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ******************************************************** Algumas distribuições permitem comandos no formado do DOS, porém com menos recursos e opções que ls. Execute no console; dir dir --help man dir Mais dicas e comandos do DOS no Linux, veja em; http://www.zago.eti.br/mtools.txt ******************************************************** Consultar as páginas do manual: man ls info ls ls --help ls colorido e outros recuros como alias veja dicas no FAQ alias. http://www.zago.eti.br/alias.txt Para localizar arquivos veja também neste diretório: http://www.zago.eti.br/find.txt grep.txt e os comandos: find locate Para localizar programas instalados no sistema veja rpm.txt synaptic.txt o comando whereis nomedopacote veja no resultado de: man -k ls ls (1) - list directory contents lsattr (1) - list file attributes on a Linux second extended file system lsearch (3) - linear search of an array lseek (2) - reposition read/write file offset lsmod (8) - list loaded modules lsmod [lsmod-module-init-tools] (8) - program to show the status of modules in the Linux Kernel lsof (8) - list open files lspci (8) - list all PCI devices lspnp (8) - list Plug and Play BIOS device nodes and resources lsraid (8) - List and query Linux md devices lstat [stat] (2) - get file status lsusb (8) - list all USB devices Listar o hardware, dispositivos PCI instalados: lspci -vv Listar os numeros da sequencia do pci_id lspci -n Páginas do manual man lspci Listar as portas USB lsusb man lsusb Ver processos e portas. lsof lsof | less lsod -i:porta lsof -i:22 man lsof ver o hardware detectado no boot: dmesg dmesg | less man dmesg ls Lista os arquivos, mesmo que dir do DOS. Paginas do manual: man ls info ls ls --help ls - LiSt directory contents repare as letras LS em maiusculas OU "List Subdirectory" onde LS são as iniciais, isto depende do autor. LS colorido Coloque alias ls="ls --color" no arquivo /etc/bashrc. No CL10 esta configuração fica em /etc/bashrc, dentro do home do usuário tem .bashrc que chama /etc/bashrc, assim temos um arquivo pra todos os usuários, caso queira personalizar o bashrc pode colocar as configurações no arquivo do usuário, no /etc/bashrc tem varios alias, dentre eles tem um pro ls colorido com esta linha: alias ls="ls --color=auto" Quem tem instalado o pacote mtools pode usar o comando "dir" inclusive para a unidade de disquete assim " dir a: " Quando o resultado de um comando "ls" for longo ultrapassando a area visivel da tela: Se executado dentro de um terminal do modo gráfico temos a barra de rolagem. Se executado em modo prompt não temos a barra mas podemos voltar (rolar a tela) com SHIFT+PAGEUP e SHIFT+PAGEDOWN. Ou executar o comando com parada por página (tela) usando "|more" : $ ls | more $ ls | less Resultado em colunas, exemplo pra 4 colunas, altere T4 para o numero de colunas desejado, ex.: ls | pr -T4 -W$COLUMNS Numerar as linhas do resultado de ls ls | cat -n ou cat -n <(ls) Salvar o resultado de ls em arquivo com linhas numeradas. cat -n <(ls) > lsnumerado Com detalhes, ls -la cat -n <(ls -la) > lsnumerado ou ls -la | cat -n > lsnumerado Listar somente os diretórios, com (grep '^d') veja os resultados dos comandos: ls -l | grep '^d' ls -l | grep ^d Contar os diretórios. ls -l | grep ^d | wc -l aplicar somente em arquivos, (grep ^-) inverter o resultado ls -l | grep ^- | wc -l O resultado de ls pode ser diferente entre as distro, exemplos para listar somente o nome do diretório. No CL10 e SUSE 10.1 use: ls -l | grep '^d' | awk {'print $8'} No Mandriva 2006 use: ls -l | grep '^d' | awk {'print $9'} Os exemplos acima não exibe os diretórios ocultos, que inciam com ., o exemplo a seguir lista também os diretórios ocultos. find . -type d -maxdepth 1 Excluir os arquivos vazio do resultado, compare o resultado destes comandos. Lista dos os arquivos de /var/log ls -la /var/log Resultado sem os arquivos vazio. ls -la /var/log | awk '$5 != "0" {print $0}' Listar somente os arquvos vazio. ls -la /var/log | awk '$5 = "0" {print $0}' til " ~" representa o home do usuário, exemplo para listar home do usuário a partir de outro diretório como executar o comando em /tmp [zago@serv tmp]$ ls -la ~ Com atributos e datas... ls --time=ctime -lu ls --time=atime -lu ls --time=access -lu sort - colocar o resultado em ordem, tem diversas diretivas, em ordem alfabetica, por data, tamanho e muito mais, veja todas no (man ls) Como exemplo, listar por ordem de data. ls -lat ls --sort=time -l find /tmp -type f -printf '%TY-%Tm-%Td %TH:%TM:%TS %p\n' | sort Ordenar - ls com sort. ls we* | sort [zago@faqcl10 guiaz]$ ls we* | sort webcam.txt webmin.txt webvideo.txt Pegar o nome do arquivo mais recente no diretório corrente ls -tr | tail -1 Listar somente os 4 arquivos mais recentes. ls -tr | tail -4 Passar o resultado para outro filtro como sort, grep e outros, acrescente mais um pipe "|" e condição, exemplos; ls we* | sort | grep mim [zago@faqcl10 guiaz]$ ls we* | sort | grep min webmin.txt Com sort mais uniq, exibir somente os arquivos repetidos. ls | sort | uniq -id -id = -i ignorar caixa e -d exibir somente arquivos repetidos. a finalide seria procurar por arquivos repetidos com diferenças somente na caixa mas uniq tem comportamento estranho nesta operação, por exemplo, no mesmo diretório tem Zip.txt e zip.txt e não aparece no resultado acima como duplicados, tanto com -id ou somente -d; [zago@faqcl10 guiaz]$ ls ?ip* Zip.txt zip.txt zipdrive.txt Ao trocar a extensão de um deles para maiusculas aparece um no resultado, exemplo [zago@faqcl10 guiaz]$ ls ?ip* zip.TXT zip.txt zipdrive.txt [zago@faqcl10 guiaz]$ ls | sort | uniq -id zip.TXT **************************************************************** Listar arquivos de diversas extensões. ls -l *.{mp3,avi,AVI,jpg} ls -l *.{t2t,html,txt} **************************************************************** Listar somente o nome do arquivo (sem a extensão) copia parcial do man basename (CL10) NOME basename - retira o diretório e sufixo do arquivo SINOPSE basename nome [sufixo] basename {--help,--version} Execute dentro do diretório onde estão os arquivos, neste formato. basename arquivo.txt .txt find retorna somente o nome do arquivo, não tem muito sentido fazer isto em linha de comando mas é muito útil em scripts, veja alguns exemplos a seguir. for i in $(ls *.txt); do basename $i .txt; done; find /tmp/guiaz -name "*.txt" -exec basename {} \; | sed s/"\.txt"//g Outros exemplos, listar somente o que vem antes do primeiro ponto no nome. ls | grep .txt | cut -d"." -f1 for i in $(ls *.txt | cut -d"." -f1); do echo $i; done; for i in $(ls *.txt); do echo ${i%%.txt}; done; for i in $(ls *.txt | sed s/.txt//); do echo $i; done; Remover o que vem depois do último ponto no nome de arquivo. ls -1 | sed 's/\..*$//' **************************************************************** ls + awk = Listar somente tamanho e nome ls -la |awk '{print $5" "$8}' 1228107776 arquivao.gdb 52428800 part_aa 52428800 part_ab 52428800 part_ac 52428800 part_ad 52428800 part_ae 30668800 part_af **************************************************************** parametro -hs (-h --human-readable) retorna o tamanho e nome por exemplo: $ ls -hs ip.txt 28k ip.txt Em ordem de data, inclua -t nos parametros. ls -lat pra inverter a ordem acrescente -r ls -lart Pra incluir a barra "/" nos diretórios acrescente -F ls -Fltr Listar também os arquivos ocultos e todos os sub-diretorios: ls -Ra do manual do ls -R Lista os diretórios encontrados, recursivamente. -a Inclue os arquivos com o nome iniciando com '.' na listagem. Ordenando o resulado de ls com sort. resultado de ls em ordem alfabetica decrescente -r inverte a seleção: ls | sort -r Pra listar os arquivos em ordem crescente pelo tamanho: ls -la | sort -nk 5 pra listar em ordem decrescente pelo tamanho do maior para o menor: ls -la | sort -rnk 5 veja no man as opções disponiveis, basta digitar: man ls man sort Veja mais sobre o uso do sort em: http://www.zago.eti.br/sort.txt ***************************************************************** copiado e adaptado a partir de: http://focalinux.cipsga.org.br/download.html Gleydson Mazioli da Silva Curingas Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 3 tipos de curingas no `GNU/Linux': * "*" - Faz referência a um nome completo/restante de um arquivo/diretório. * "?" - Faz referência a uma letra naquela posição. * `[padrão]' - Faz referência a um padrão contido em um arquivo. Padrão pode ser: * `[a-z][1-0]' - Faz referência a caracteres de `a' até `z' ou de `1' até `10'. * `[a,z][1,0]' - Faz a referência aos caracteres `a' e `z' ou `1' e `10' naquela posição. * `[a-z,1,0]' - Faz referência aos caracteres de `a' até `z' e `1' e `10' naquela posição. A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar `[a-zA-Z]'. Caso a expressão seja seguida de um `^', faz referência a qualquer caracter exceto o da expressão. Por exemplo `[^abc]' faz referência a qualquer caracter exceto `a', `b' e `c'. Lembrando que os 3 tipos de curingas ("*", "?" e "[]") podem ser usados juntos. Para entender melhor vamos a prática: Vamos dizer que tenha 5 arquivo no diretório `/usr/teste': `teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new'. Caso deseje listar _todos_ os arquivos do diretório `/usr/teste' você pode usar o curinga "*" para especificar todos os arquivos do diretório: `cd /usr/teste' e `ls *' ou `ls /usr/teste/*'. Não tem muito sentido usar o comando `ls' com "*" porque todos os arquivos serão listados se o `ls' for usado sem nenhum Curinga. Agora para listar todos os arquivos `teste1.txt, teste2.txt, teste3.txt' com excessão de `teste4.new', `teste5.new', podemos usar inicialmente 3 métodos: 1. Usando o comando `ls *.txt' que pega todos os arquivos que começam com qualquer nome e terminam com `.txt'. 2. Usando o comando `ls teste?.txt', que pega todos os arquivos que começam com o nome `teste', tenham qualquer caracter no lugar do curinga `?' e terminem com `.txt'. Com o exemplo acima `teste*.txt' também faria a mesma coisa, mas se também tivéssemos um arquivo chamado `teste10.txt' este também seria listado. 3. Usando o comando `ls teste[1-3].txt', que pega todos os arquivos que começam com o nome `teste', tenham qualquer caracter entre o número 1-3 no lugar da 6a letra e terminem com `.txt'. Neste caso se obtém uma filtragem mais exata, pois o curinga _?_ especifica qualquer caracter naquela posição e [] especifica números, letras ou intervalo que será usado. Agora para listar somente `teste4.new' e `teste5.new' podemos usar os seguintes métodos: 1. `ls *.new' que lista todos os arquivos que terminam com `.new' 2. `ls teste?.new' que lista todos os arquivos que começam com `teste', contenham qualquer caracter na posição do curinga _?_ e terminem com `.new'. 3. `ls teste[4,5].*' que lista todos os arquivos que começam com `teste' contenham números de 4 e 5 naquela posição e terminem com qualquer extensão. Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma só vez. O uso de curingas será útil ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma característica do `GNU/Linux': permitir que a mesma coisa possa ser feita com liberdade de várias maneiras diferentes. **************************************************************** Listar somente os diretórios. [zago@mail guiaz]$ ls -l | grep '^d' drwxrwxr-x 2 zago zago 4096 Set 11 11:35 apostilas drwxrwxr-x 2 zago zago 4096 Jul 23 22:30 desktop drwxr-xr-x 2 zago zago 4096 Out 23 09:38 diversos drwxrwxr-x 3 zago zago 4096 Out 5 12:33 drivers drwxrwxr-x 3 zago zago 4096 Nov 23 22:24 email [zago@mail guiaz]$ ls -l | grep '^d' | awk '{print $9}' apostilas desktop diversos drivers email Pra salvar o resultado acima em arquivo, acrescente >> /caminho/arquivo ls -l | grep '^d' | awk '{print $9}' >> /home/zago/meusdir Listar somente tamanho e nome de arquivo ls -la |awk '{print $5" "$8}' Onde: $5 mostra o tamanho do arquivo $8 mostra o nome do arquivo. ***************************************************************** Converter resultados de ls para outro idioma. Quando resultado de ls apresentar caracteres estranhos em lugar de acentos, principalmente arquivos copiados de instalações windows ou acesso a diretórios Samba. Tente exibir em outro idioma como nestas opções. LC_ALL=pt_BR.ISO-8859-1 ls LC_ALL=pt_BR.utf8 ls LC_ALL=pt_BR.UTF-8 ls Não altera no sistema, faça testes com exemplo acima e somente com ls para ver se muda o resultado, exibe corrretamente arquivos com acentos no nome. ***************************************************************** Limitar a largura da tela para exibir os resultados, meio confuso esta limitação da tela quando sempre tratamos em colunas, o melhor é ver o resultado para entender, por exemplo para exibir o resultado em 80 colunas: w = screen width, ou seja, a largura da tela ls --width=80 Tem o mesmo resultado com: ls -w80 Para 40 colunas, metade da tela: ls -w40 **************************************************************** De: Anderson Lizardo Gomes Para: linux-br@bazar.conectiva.com.br Cc: Carlos A Silva Assunto: Re: (linux-br) Como saber se tem arquivos no diretório ??? (XL) Data: 04 Oct 2002 22:39:39 -0400 Em Quarta, 2 de Outubro de 2002 19:33, Carlos A Silva escreveu: > (...) > E como faço prá saber se tem algum arquivo de uma determinada extensão??? > (...) > Ou seja, quando coloco *.txt , ele dá erro...E eu preciso saber se em uma > determinada pasta existem arquivos com a extensão txt. Uma sugestão: ---- #!/bin/bash ls /pasta/*.txt &>/dev/null if [ "$?" = "0" ]; then .... fi # fim ---- -- Anderson Lizardo Gomes **************************************************************** De: Leonardo Tavares Para: marcos_linux@gpoli.com.br Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 15 Jan 2003 14:02:01 -0200 Fala ai Marcos, Tente assim. ls -l | wc -l Ele vai contar as linhas, basta diminuir 1 que vc vai ter o total de arquivos e diretorios. De: Thiago Macieira Para: Leonardo Tavares , marcos_linux@gpoli.com.br Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 16 Jan 2003 01:00:48 +0100 Leonardo Tavares wrote: >Fala ai Marcos, > >Tente assim. > >ls -l | wc -l >Ele vai contar as linhas, basta diminuir 1 que vc vai ter o total de >arquivos e diretorios. Tente então: ls -1 | wc -l ("um" ao invés de L para o ls) Ou então: ls | wc -l Quando o ls detecta que a saída não é um terminal, o comportamento padrão é listar um arquivo por linha (como com a opção -1). De: Anderson Vieira de Souza Para: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 15 Jan 2003 23:52:40 -0200 Alô pessoal, Esse é um detalhe que desperta curiosidade aos recém chegados ao Linux. Já me perguntaram isso N vezes, entretanto como não tenho o conhecimento e a criatividade de vocês a pergunta sempre ficou sem resposta. Testei aqui, mas observei algo estranho, a conta é sempre acrescida de 1, é só aqui? Porque isso estaria acontecendo? Desmembrei os pipes e pesquisei no man cada um dos parâmetros utilizados, mas não entendi porque em um diretório meu que de acordo com os critérios do comando deveria apresentar 11 arquivos, apresenta 12... Grato desde já por qualquer esclarecimento. Em Wed, 15 Jan 2003 17:26:04 -0400 o Slacker Anderson Vieira de Souza proferiu: > ls -F | grep -v \/ | grep -v \@ | wc -l -- De: Thiago Macieira Para: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 16 Jan 2003 11:57:17 +0100 Ricardo Guedes wrote: >Eu ainda colocaria se fosse você mais um grep para não contar os link >simbólicos. > >> ls -F | grep -v \/ | wc -l > >ls -F | grep -v \/ | grep -v \@ | wc -l Este comando vai contar todos os arquivos no diretório que não contenham a letra V nem o arroba e não sejam links simbólicos. Se não quiser contar nem diretórios nem links simbólicos, recomendo: ls -l | grep -v '^[dl]' | wc -l (terá que subtrair 1 por causa da primeira linha do ls) Se quiser contar apenas arquivos comuns, que não sejam nem links simbólicos nem diretórios nem sockets nem FIFOs nem dispositivos, tente: ls -l | grep '^-' | wc -l (sem subtrair 1 agora) Outras opções: find . -maxdepth 1 -type f | wc -l (note que este comando conta os arquivos começando por . também) Se estiver no zsh: ls -1 *(.) | wc -l - -- Thiago Macieira - UFOT Registry number: 1001 De: Thiago Macieira Para: Anderson Vieira de Souza , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 16 Jan 2003 11:42:59 +0100 Anderson Vieira de Souza wrote: >Alô pessoal, > > Esse é um detalhe que desperta curiosidade aos recém chegados >ao Linux. Já me perguntaram isso N vezes, entretanto como não tenho > o conhecimento e a criatividade de vocês a pergunta sempre ficou sem >resposta. > Testei aqui, mas observei algo estranho, a conta é sempre >acrescida de 1, é só aqui? Porque isso estaria acontecendo? > Desmembrei os pipes e pesquisei no man cada um dos parâmetros >utilizados, mas não entendi porque em um diretório meu que de acordo >com os critérios do comando deveria apresentar 11 arquivos, apresenta >12... > >Grato desde já por qualquer esclarecimento. Lembrando que o wc -l conta o número de linhas da sua entrada, vamos ao teste: [thiago@prometheus /tmp]$ mkdir test [thiago@prometheus /tmp]$ cd test/ [thiago@prometheus /tmp/test]$ touch arquivo1 [thiago@prometheus /tmp/test]$ touch arquivo 2 [thiago@prometheus /tmp/test]$ ls -l | wc -l 3 Realmente, ele disse 3... 3 o quê? 3 linhas na entrada ou seja, o ls -l mandou 3 linhas na saída vejamos: [thiago@prometheus /tmp/test]$ ls -l total 0 - -rw-rw-r-- 1 thiago thiago 0 Jan 16 11:38 arquivo1 - -rw-rw-r-- 1 thiago thiago 0 Jan 16 11:38 arquivo2 Note a primeira linha dizendo "total 0" (total de bytes). Essa linha também é contada pelo wc -l. Como eu já disse em outro e-mail, podemos fazer o ls listar um arquivo por linha sem ao mesmo tempo necessitar da listagem no formato longo (-l). Trata-se da opção -1: [thiago@prometheus /tmp/test]$ ls -1 arquivo1 arquivo2 [thiago@prometheus /tmp/test]$ ls -1 | wc -l 2 Espero que tenha ajudado. [thiago@prometheus /tmp/test]$ cd ; rm -rf /tmp/test/ - -- Thiago Macieira - UFOT Registry number: 1001 **************************************************************** De: Marcus Lima Responder-a: Marcus Lima Para: Thiago Macieira , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 16 Jan 2003 09:37:36 -0200 > > ls -F | grep -v \/ | grep -v \@ | wc -l > Este comando vai contar todos os arquivos no diretório que não contenham a > letra V nem o arroba e não sejam links simbólicos. Desculpa Thiago, mas faltou um pouquinho de atenção da sua parte... o grep -v \/ não é -v V e sim -v barra invertida barra comum. Mas o seu método ficou bem legal para listar outros tipos de arquivos. - Marcus Lima. **************************************************************** De: Ricardo Guedes Para: Marcus Lima , marcos_linux@gpoli.com.br, linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 15 Jan 2003 17:26:04 -0400 Eu ainda colocaria se fosse você mais um grep para não contar os link simbólicos. > ls -F | grep -v \/ | wc -l ls -F | grep -v \/ | grep -v \@ | wc -l **************************************************************** De: Luciano Savioli Para: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 15 Jan 2003 14:57:10 -0200 tenta isso : ls | wc -l t+ **************************************************************** De: Luiz Oliveira Para: marcos_linux@gpoli.com.br, linux-br@bazar.conectiva.com.br Assunto: (linux-br) RES: (linux-br) Total de arquivos em um diretorio Data: 15 Jan 2003 14:42:37 -0200 Para um diretório use: ls | wc -l Isto conta o número de linhas de um ls, que é o mesmo que o número de arquivos. du | wc -l Dá um a mais por causa da linha com o tamanho total, mas nesse caso está contando diretorios. Com a opça -a mostra tudo, inclusive arquivos. du -a | wc -l Mais ai vai contar o nome dos diretórios também. É o ínicio da solução, acho eu. Luiz Oliveira **************************************************************** De: Marcus Lima Responder-a: Marcus Lima Para: marcos_linux@gpoli.com.br, linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Total de arquivos em um diretorio Data: 15 Jan 2003 13:39:03 -0200 Você pode juntar dois comandos para ter o resultado que você deseja... O ls vai listar os arquivos e o wc -l para contar as linhas que sairam do ls. ls | wc -l Claro que o ls também vai listar os diretórios... neste caso você terá que selecionar o que quer ls -F | grep -v \/ | wc -l Neste caso o -F do ls fará ele colocar uma barra ( / ) no final do nome dos diretórios e o grep -v \/ faz com que ele ignore estas linhas, assim vai contar somente os arquivos... se quiser somente os diretórios retire a opção -v do grep. Ah, se quiser bonitinho pode fazer assim: echo "O total de arquivos deste diretório é: `ls -F | grep -v \/ | wc -l`." - Marcus Lima. (de volta das férias). **************************************************************** De:  Adilson - Solucao Linux / Software - Servidores Para:  linux-br@bazar.conectiva.com.br Assunto:  Re: (linux-br)=?iso-8859-1?q?   Pergunta=20besta=20-=20LS?= (... ou =?iso-8859-1?q?n=E3o?=) Data:  Mon, 25 Aug 2003 21:40:11 -0300 Em Qui 21 Ago 2003 20:25, Edson Ahlert escreveu: > Olá!!! > Suponhamos que eu tenha os seguintes arquivos: >     texto1.txt >     texto2.txt >     texto12.txt >     texto123.txt >     texto1234.txt >     textoabc.txt >     textoabcd.txt > > Como posso através de um ls ou find localizar apenas os 4 primeiros > arquivos??? > "ls texto[0-9].txt" só me mostra os 2 primeiros... use : -->  "ls texto[0-9]*.txt" para listar todos com numeros --> "ls texto[a-z]*.txt" para listar todos com letras o "*" (asterisco)  serve como "meta-caracter" somente para o que estiver entre "[]" -- um abraço Adilson. **************************************************************** De:  Thiago Macieira Para:  linux-br@bazar.Conectiva.Com.Br Assunto:  Re: (linux-br)Acessar/Listar Arquivos com caracteres Data:  Sun, 2 Nov 2003 22:29:30 -0200 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 rodrigofaria@mav.com.br wrote: >Pessoal, > >Quando digito ls mostra os arquivos > >Lulu Santos - Eu to Voltando pra Casa >Lulu Santos - Toda Forma de Amor > >qaundo tento apagar um desses arquivos ou listar >aparece > >Lulu Santos - > >Aperto o TAB e nao consigo acessar pelo nome nenhum dos dois arquivos >existe uma forma de conseguir fazer isso ? Vamos fazer o teste: [thiago@prometheus /tmp/test]$ ls -1 Lulu Santos - Eu to Voltando pra Casa Lulu Santos - Toda Forma de Amor O que você está tentando fazer: [thiago@prometheus /tmp/test]$ ls Lulu Santos - (seguido de Tab) Aqui você ouve um bipe indicando que não há nada a completar. Veja que engraçado se eu coloco um espaço depois do - e pressiono Tab: [thiago@prometheus /tmp/test]$ ls Lulu Santos - Lulu\ Santos\ -\ Opa! ele completou com alguma outra coisa. Veja bem o que está acontecendo: espaços são usados para separar parâmetros. Portanto, quaisquer arquivos com espaços no nome devem ter os espaços devidamente marcados para dizer ao seu shell que não são separadores: fazem parte do nome do arquivo. É isso que ele fez ali em cima: ele coloca a barra invertida antes dos espaços. Outras opções: [thiago@prometheus /tmp/test]$ ls 'Lulu Santos - Lulu Santos - Eu to Voltando pra Casa  Lulu Santos - Toda Forma de Amor [thiago@prometheus /tmp/test]$ ls 'Lulu Santos - [thiago@prometheus /tmp/test]$ ls "Lulu Santos - Lulu Santos - Eu to Voltando pra Casa  Lulu Santos - Toda Forma de Amor [thiago@prometheus /tmp/test]$ ls "Lulu Santos - (não pressionei Enter nas linhas acima, apenas Tab duas vezes) Em outras palavras, você pode escrever um arquivo que tenha o seguinte nome:         Nome Nome das três formas a seguir (e variações delas):         Nome\ Nome         "Nome Nome" ou Nome" "Nome         'Nome Nome' ou Nome" "Nome Aproveitando: para um arquivo com caracteres especiais ($No\me)         \$No\\me         "\$No\\me"         '$No\me' - --   Thiago Macieira  -  Registered Linux user #65028    thiagom@mail.com               ICQ UIN: 1967141  **************************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)ls sem cor Data:  Sun, 3 Oct 2004 21:48:08 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Silas Justiniano wrote: >Uso o Slackware 9.1 com kernel 2.4.22 e gostaria de saber por que meu >comando ls não está colorindo as pastas e demais arquivos. Só colore >quando eu digito ls --color. > >Como é que eu faço para colorir sem digitar o argumento --color? alias ls="/bin/ls --color=auto" Coloque isso num script de inicialização. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info **************************************************************** **************************************************************** **************************************************************** ****************************************************************