Estou tentando obter os arquivos com mais de um número de dias e listá-los em ordem decrescente com base no tamanho e todas as informações (tamanho, caminho completo, etc - algo semelhante ao fornecido por ls
).
Embora eu possa localizar arquivos mais antigos com:
find . -mtime +10
Não consigo listar as informações desejadas.
Respostas:
Desde que os caminhos do arquivo não contenham caracteres de nova linha:
Veja o
find
manual , seçãoActions
.%s
Tamanho do arquivo em bytes.%n
Número de links físicos para o arquivo.%m
Bits de permissão do arquivo (em octal ).%u
Nome de usuário do arquivo ou ID numérico do usuário, se o usuário não tiver um nome.%g
Nome do grupo do arquivo ou ID numérico do grupo, se o grupo não tiver um nome.%t
Hora da última modificação do arquivo no formato retornado pelactime
função C.%p
Nome do arquivo%l
Objeto do link simbólico (sequência vazia se o arquivo não for um link simbólico).BTW: Observe que o manual POSIX
find
não especifica a maioria das ações acima.fonte
Este comando usa apenas os recursos POSIX de
find
e dels
:No entanto, pode chamar
ls
mais de uma vez, se houver um número muito grande de arquivos no diretório atual (ou subdiretórios recursivamente) correspondendo ao-mtime +10
primário.Se ele chamar
ls
mais de uma vez, é claro, a classificação será feita apenas dentro de cadals
execução, não entre várias execuções.Ainda assim, para um número razoável de arquivos, essa é provavelmente a sua melhor aposta.
fonte
ls
está sendo passado apenas um argumento, há pouca classificação que ele pode fazer. Com, em+
vez de;
, isso seria melhor, masls
ainda pode acabar sendo chamado várias vezes se houver muitos arquivos.Com
zsh
:Ou, para evitar a classificação dupla (por nome por zsh e por tamanho por ls):
ou (se o seu
ls
suporte-U
for não classificado):Adicione o
D
qualificador glob se você deseja ver os arquivos ocultos também.fonte
zargs
.Eu acho que você poderia fazer algo semelhante a:
observe o
-S
parâmetro dels
comando:fonte
/home/phphil
. Tentels -ld ...
find . -type f
vez disso?find ... -type f
funcionaria, assim como a adição da-d
bandeira emls
tente isto:
fonte
Para um one-liner mais fácil você pode usar a
find
opção-ls
. Aparece na maioria dos casos, o tamanho do arquivo está na sétima coluna das informações listadas (portanto, altere7
no final do comando, conforme apropriado, se não):fonte
Outra variação seria usar:
Aqui está o comando:
fonte