Classifique os arquivos no diretório recursivamente com base na data da última modificação
Modifiquei muitos arquivos no meu diretório e quero saber o que são esses arquivos, classificando-os até a data da última modificação e por isso quero que algumas extensões sejam excluídas
no diretório svn, também tenho muitos arquivos .svn que não quero mostrar no tipo
Respostas:
lhe dará algo como
fonte
find -not -iname '*.ext'
.Se você deseja nivelar a estrutura de diretórios (classificando assim a data em todos os arquivos em todos os diretórios, ignorando em qual diretório os arquivos estão), a
find
abordagem sugerida por @yeti é o caminho a seguir. Se você deseja preservar a estrutura de diretórios, tenteque classifica o diretório com base.
fonte
No bash, execute
shopt -s globstar
primeiro. No ksh93, executeset -o globstar
primeiro. No zsh, você já está definido.Isso retornará um erro se você tiver tantos arquivos que o limite de comprimento da linha de comando no seu sistema for excedido. No zsh, você pode usar isso:
fonte
Supondo que você esteja encontrando o GNU find, tente:
fonte
find
a-printf
opção para evitar a chamada de um processo separado (ou vários, dependendo do número de arquivos). Veja minha resposta para um exemplo.stat
uma chance e mostrar-exec ... +
. Realmente! Às vezes eu penso,stat
merece mais atenção ... e ninguém deve levar receitas de aqui sem ler sobre os ingredientes e pensar sobre as conseqüências ...-printf
...find
não tiver-printf
, você pode usar-exec sh -c 'printf...'
para obter muitas das mesmas funcionalidades. Isso incluiria acesso também a$(pwd)
caminhos totalmente qualificados.stat
. Então, às vezes eu só quero dirigir alguma atenção emstat
... Eu acho questat
merece ...Para listar com robustez os nomes de arquivos usando apenas as ferramentas GNU recentes:
fonte
Isso evita qualquer problema na lista de argumentos, porque o único argumento que
ls
será recebido será o nome do diretório que você deseja listar. Você pode fazer isso com o que quiser.O shell apenas
. sources
o|pipe
como um script shell - é o mesmo processo e não tem os problemas que você pode encontrar quandoexecve
é chamado.Em todo o caso - o acima exposto apenas atinge três níveis de profundidade, que é ajustável alterando
maxdepth
. Também é profundo primeiro - para que você trabalhe de volta para o diretório atual a partir dedepth
.Você pode notar que também recebe
$LSCOLORS
- na minha máquina, ele também fornece colunas bem impressas e tudo o mais que você desejals
- ou, nesse caso, qualquer coisa que você possa imaginar que gostaria de fazer com. source.
SEM SVN
Novamente, isso fará o que você espera
ls
. Portanto, ocultar.svn
arquivos é tão simples quanto alterar als
linha para:Ou se você deseja ver as
svn
extensões em todas as pastas, MAS./svn
você pode alterá-las para que todo o comando fique assim:Pessoalmente, gosto de sl
-s
e, se você se importa,-u
classificará por tempo de acesso em vez de tempo mod.fonte
Este irá listar todos
files
em<dir>
com nível superior ser modificado mais antigaE com isso, a última modificação é a mais alta
Observe que isso só funciona se a lista de nomes de arquivos não exceder o limite total de comprimento da linha de comando no seu sistema.
fonte
xargs -0
(em ambos os casos).xargs -print0
é equivalente axargs -p -r -i -n -t -0
ouxargs -inprt0
ouxargs -0ntrip
, o que provavelmente não é o que você quis dizer.