Bash - Liste et Trier les Fichiers et Leur taille et par le Nom et la Taille
Je suis à essayer de comprendre comment trier une liste de fichiers par le nom et la taille.
Comment puis-je trier par nom de fichier et la taille à l'aide de "du-un" et de ne pas afficher les répertoires?
À l'aide de "du-un"
1 ./locatedFiles
0 ./testDir/j.smith.c
0 ./testDir/j.smith
1 ./testDir/sampleFunc/arrays
2 ./testDir/sampleFunc
0 ./testDir/j.smith.txt
0 ./testDir/testing
0 ./testDir/test2
0 ./testDir/test3
0 ./testDir/test1
0 ./testDir/first/j.smith
0 ./testDir/first/test
1 ./testDir/first
1 ./testDir/second
1 ./testDir/third
6 ./testDir
Comment puis-je liste tous les fichiers sans les répertoires, ajouter des fichiers de tailles et de trier les fichiers par nom d'abord, puis par taille?
Merci pour votre aide
- Voulez-vous un tri sur le nom du fichier? ou le chemin d'accès?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ceci:
Explication:
Puis exécutez à travers de tri qui trie dans l'ordre donné ci-dessus (c'est à dire de nom de fichier, puis la taille du fichier, puis le chemin d'accès au fichier). La sortie serait quelque chose comme ceci (la partie de la sortie montré):
Espère que cette aide
Vous pouvez utiliser le
sort
commandetrier par seconde zone(nom), puis premier champ(taille) numériquement.
sort
options (mutatis mutandis) sont nécessaires pour l'-printf
méthode. Vous pourriez aussi vous voulez supprimer des champs, par exemple, à l'aide decut
ou quelque chose du genre.--max-depth=1
àdu
à restreindre uniquement pour le dossier en cours, mais il faudra encore de la liste des dossiers, mais pas son contenu.Que les autres réponses jusqu'à présent dire, ce n'est pas vraiment un bash problème.
du
assez bien insiste sur le fait de vous parler de répertoires: si vous pointez sur un répertoire, alors avec ou sans-a
il va vous en parler.Si vous avez la GNU
du
, bien que, vous pouvez l'annoncer à lire une liste de NUL de terminaison des noms de fichiers à partir de stdin, de sorte que vous pouvez utiliserfind
de produire la liste:find ... -print0 | du --files0-from=-
(vous n'avez pas besoin de la-a
drapeau ici). (Si vous n'avez pas le--files0-from
option, vous pouvez toujours invoquerdu
relativement efficace, en utilisant desxargs
; voir laxargs
de la documentation.)Si vous avez GNU
du
, cependant, vous avez probablement GNUfind
, qui a-printf
comme décrit par @icyrock.com. L'utiliser. Ensuite, l'utilisation explicitesort
.