Existe um comando para listar arquivos, excluir subdiretórios e exibir tamanho e data?

1

Antes de começar, suponha que eu tenha apenas conhecimento básico no UNIX. Significado básico Eu só comecei a ler sobre isso desde a semana passada para um propósito relacionado ao trabalho.

Eu tenho experimentado com o comando ls para fornecer listas de um diretório específico contendo mídia de vídeo. Eu precisava mostrar o nome do arquivo , tamanho do arquivo e a data em que ele foi criado. Eu consegui isso usando o comando:

ls -gohU

Isso foi bom, mas a pesquisa também incluiu os subdiretórios dentro desse diretório. Depois de procurar, encontrei outro comando que exibe os arquivos e exclui as pastas:

find . -maxdepth 1 -not -type d

O que eu gostaria de saber é se existe um comando que possa encontrar todos os arquivos dentro do diretório, excluindo subdiretórios e exibir seus nomes de arquivos , tamanho e < em> data eles foram criados.

P.S. Também estou usando o Terminal-bash no Mac OS 10.6.8, se isso ajudar.

    
por user36833 09.04.2013 / 11:53

4 respostas

5

Use a opção -exec para combinar os dois comandos que funcionam para você:

find . ! -name . -prune ! -type d -exec ls -gohU {} +
    
por 09.04.2013 / 13:50
2

Se o primeiro caractere for d, então, um arquivo será um diretório. Para listar as linhas que começam com outros caracteres, use:

ls -gohU | grep '^[^d]'
    
por 09.04.2013 / 13:56
1

Alternativa para ls se você quiser apenas alguns campos é o comando stat do OS / X:

find . ! -name . -prune ! -type d -exec stat -t '%FT%T' -f '%15z %SB %N' {} +

Ou com zsh :

command stat -t '%FT%T' -f '%15z %SB %N' -- *(D^/)

( %B , ls -U são específicos do OS / X, outros Unices geralmente não têm tempo de nascimento do inode ).

    
por 09.04.2013 / 14:25
0

A maioria das versões de encontrar suporte -ls opção para o seguinte deve dar o que você está indo para:

find . -maxdepth 1 -type f -ls
    
por 09.04.2013 / 18:24