como listar arquivos em uma pasta usando bash scripting

0

Estou apenas começando com o bash scripting e estava tentando escrever um script simples no qual posso listar todos os arquivos com uma certa extensão usando um script bash. Eu principalmente código em Python ou Matlab, então eu estou muito acostumado a definir o endereço da pasta e usando a função cd para mudar o caminho para essa pasta e obter a lista dos arquivos nessa pasta. Eu estava tentando fazer isso com o bash e não sou o que estou fazendo de errado. Por exemplo, estou tentando listar todas as subpastas em uma pasta com o seguinte endereço "/home/user012/Desktop/folder2Start"

Até agora eu tentei

cd "/home/user012/Desktop/folder2Start"

e não fez muito quando o rodei do terminal.

Como eu colocaria um cd nele e listaria suas pastas?

Qualquer ajuda seria muito apreciada ..

    
por sanster9292 06.08.2017 / 06:28

3 respostas

1

Você deve usar algo como:

ls -l -d /home/user012/Desktop/folder2Start/*/
  • */ procura diretórios
  • -d diz que não imprime o conteúdo desses diretórios.
por Ravexina 06.08.2017 / 06:42
1

Este é um caso de uso típico para globalização de shell (expansão de nome de caminho):

/home/user012/Desktop/folder2Start/*/

Aqui, usei */ , que corresponderá a qualquer arquivo ( * ) em /home/user012/Desktop/folder2Start/ , que é um diretório ( / ).

Se você quiser operá-los mais tarde, coloque melhor o resultado da expansão em uma matriz (funciona de maneira semelhante ao Python list , ambos são indexados por 0 também):

directories=( /home/user012/Desktop/folder2Start/*/ )

então você pode referenciar o array e seus elementos usando os usuais operadores de manipulação de array.

OTOH, se você quiser a lista, use echo / printf / ls - o que melhor lhe convier:

printf '%s\n' /home/user012/Desktop/folder2Start/*/
echo /home/user012/Desktop/folder2Start/*/
ls -ld /home/user012/Desktop/folder2Start/*/

para qualquer nome de diretório com nova linha incorporada, procure por / como marcador final de nome.

    
por heemayl 06.08.2017 / 06:40
0

U pode listar o arquivo "folder2Start" emitindo:

ls -la /home/user012/Desktop/folder2Start

Talvez eu esteja atrasado, mas a pergunta ainda esteja ativa, espero que possa ser útil para você.

    
por Kaylee 24.07.2018 / 17:44