Use a opção -exec
para combinar os dois comandos que funcionam para você:
find . ! -name . -prune ! -type d -exec ls -gohU {} +
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.
Use a opção -exec
para combinar os dois comandos que funcionam para você:
find . ! -name . -prune ! -type d -exec ls -gohU {} +
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]'
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 ).
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