7
votes

Commande Bash pour répertorier récursivement les fichiers mais tri selon la classification

J'utilise souvent l'excellent Trouver programme à bash à Liste des fichiers avec certains filtres. Par exemple, dans une copie de travail de Subversion (SVN), je souhaite parfois répertoriez tous les fichiers mais à l'exclusion des sous-répertoires .svn code> comme suit:

a.txt
c.txt
e.txt
b\file1.txt
b\then_file3.txt
b\subdir\file2.txt
d\file4.txt


0 commentaires

4 Réponses :


10
votes

Utilisez une recherche intégrée. La recherche extérieure localise tous les répertoires et exécute une trouvaille interne qui indique uniquement les fichiers que vous souhaitez dans ce répertoire: xxx


3 commentaires

Cela fonctionne, mais des avertissements. Ils peuvent être désactivés par -NOWARN option.


Merci! Je pensais que ce serait probablement possible en quelque sorte. Donc, mon exemple de filtrage SVN serait trouvé. -Name '.svn' -PRune -O -TYpe D -EXEC Trouver {} -Type F -NOWARN -MAXDEPTH 1 \;


Lorsque j'essaye cela, le résultat n'est pas acheminé (par Dir et dans les niveaux DIR).



2
votes
tree -fi
On Ubuntu and CentOS (and Red Hat, Fedora...) it's contained in its own package, called "tree" (duh). Ubuntu doesn't seem to install that package by default, the others do.EDIT: Sorry, didn't realize you're using Cygwin. Well, it's ported to Cygwin too. If it's not in the default set, see here.

1 commentaires

Vous pouvez ajouter un -a pour obtenir aussi les fichiers cachés.



0
votes

Vous n'avez pas indiqué comment vous vouliez gérer les choses si les répertoires vont plus d'un niveau de profondeur. Est-ce que quelque chose comme ça fait ce que vous cherchez? Il fait une première liste de largeur, triée dans chaque niveau de profondeur: xxx


1 commentaires

C'était difficile à exprimer, j'ai donc essayé de montrer que dans l'exemple. Je ne veulent tous les fichiers, puis tous les répertoires (c'est facile). Lorsque vous avez un répertoire donné, je souhaite d'abord à répertorier les fichiers, puis à traiter chaque sous-répertoire, recouvrant chaque à son tour.



3
votes

Ce groupe les répertoires dans chaque niveau d'abord, puis les fichiers et recouvrent à chaque niveau et font la même chose: xxx

Il est à l'envers de ce que vous vouliez, cependant.


0 commentaires