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