Trier les fichiers dans le répertoire de manière récursive en fonction de la dernière date de modification
J'ai modifié beaucoup de fichiers dans mon répertoire, je veux savoir quels sont ces fichiers en les triant par la dernière date de modification et en ce que je veux que certaines extensions soient exclues
dans le répertoire svn j'ai aussi beaucoup de fichiers .svn que je ne veux pas montrer dans le tri
Réponses:
vous donnera quelque chose comme
la source
find -not -iname '*.ext'
.Si vous souhaitez aplatir la structure des répertoires (triant ainsi par date tous les fichiers de tous les répertoires, en ignorant le répertoire dans
find
lequel se trouvent les fichiers), l' approche-suggérée par @yeti est la solution. Si vous souhaitez conserver la structure du répertoire, vous pouvez essayerqui trie en fonction du répertoire.
la source
En bash, exécutez en
shopt -s globstar
premier. Dans ksh93, exécutez enset -o globstar
premier. Dans zsh, vous êtes déjà configuré.Cela retournera une erreur si vous avez tellement de fichiers que la limite de longueur de ligne de commande sur votre système est dépassée. Dans zsh, vous pouvez utiliser ceci à la place:
la source
En supposant que vous utilisez GNU find, essayez:
la source
find
l'-printf
option de pour éviter d'appeler un processus distinct (ou plusieurs, selon le nombre de fichiers). Voir ma réponse pour un exemple.stat
une chance et montrer-exec ... +
. Vraiment! Parfois, je pense que celastat
mérite plus d'attention ... et personne ne devrait prendre des recettes d'ici sans lire les ingrédients et penser aux conséquences ...-printf
...find
n'a pas-printf
, vous pouvez utiliser-exec sh -c 'printf...'
pour obtenir la plupart des mêmes fonctionnalités. Cela comprendrait également l'accès à$(pwd)
des chemins pleinement qualifiés.stat
. Alors parfois, je veux juste attirer l'attention surstat
... je pense questat
ça le mérite ...Pour répertorier de manière fiable les noms de fichiers uniquement à l'aide des outils GNU récents:
la source
Cela évite tous les problèmes de liste d'arguments car le seul argument
ls
jamais reçu est le nom du répertoire que vous souhaitez répertorier. Vous pouvez le faire avec tout ce que vous aimez.La coquille juste
. sources
le|pipe
comme un script shell - il est le même processus et ne pas les problèmes que vous pouvez rencontrer lorsexecve
est appelé.Dans tous les cas - ce qui précède ne va que de trois profondeurs qui est réglable en changeant
maxdepth
. Il est également profond en premier - afin que vous reveniez à votre répertoire actuel à partir dedepth
.Vous remarquerez peut-être que vous obtenez également
$LSCOLORS
- sur ma machine, il fournit également des colonnes soigneusement imprimées et tout ce que vous souhaitezls
- ou, d'ailleurs, tout ce que vous pouvez imaginer que vous voudriez faire avec. source.
AUCUN SVN
Encore une fois, cela fera tout ce que vous attendez de
ls
. Cacher des.svn
fichiers est donc aussi simple que de changer lals
ligne en:Ou si vous voulez voir des
svn
extensions dans chaque dossier MAIS./svn
vous pouvez le changer pour que la commande entière ressemble à ceci:Personnellement, je l'aime avec ls
-s
et, si vous le souhaitez,-u
triera par temps d'accès plutôt que par heure de mod.la source
Celui-ci répertoriera tout
files
en<dir>
haut avec le plus ancien étant le plus ancien modifiéEt avec cela, la dernière modification est la plus élevée
Notez que cela ne fonctionne que si la liste des noms de fichiers ne dépasse pas la limite de longueur totale de ligne de commande sur votre système.
la source
xargs -0
(dans les deux cas).xargs -print0
est équivalent àxargs -p -r -i -n -t -0
ouxargs -inprt0
ouxargs -0ntrip
, ce qui n'est probablement pas ce que vous vouliez dire.