GNU/Linux >> Tutoriels Linux >  >> Linux

rechercher l'ordre de tri par défaut de la commande

Solution 1 :

find traversera l'arborescence des répertoires dans l'ordre où les éléments sont stockés dans les entrées du répertoire. Ce sera (principalement) cohérent d'une exécution à l'autre, sur la même machine et sera essentiellement "l'ordre de création des fichiers/répertoires" s'il n'y a pas eu de suppressions.

Cependant, certains systèmes de fichiers réorganisent les entrées de répertoire dans le cadre d'opérations de compactage ou lorsque la taille de l'entrée doit être étendue, il y a donc toujours une petite chance que l'ordre "brut" change avec le temps. Si vous souhaitez une commande cohérente, faites passer la sortie par une étape de tri supplémentaire.

Solution 2 :

Vous ne devriez pas vous fier à un ordre de sortie particulier de find et à la place devrait utiliser sort et d'autres moyens pour contrôler spécifiquement la commande.

Solution 3 :

Je travaille sous UNIX/Linux depuis 1984/1991 respectivement et la première commande qui m'a été enseignée était find. Linux/GNU a mis à peu près tout ce dont vous avez besoin dans la commande de recherche actuelle, alors jouez avec.

Voici quelques conseils utiles pour trier la sortie de la recherche. L'option -printf vous offre de nombreuses options pour permettre un tri plus complexe et une présentation des informations sur les fichiers. C'est le meilleur pour des problèmes comme celui-ci. Jouez avec pour voir ce qui fonctionnera pour vous. En utilisant -printf, vous pouvez personnaliser et délimiter les résultats comme vous le souhaitez. Cela aide un peu lorsque vous devez post-traiter les résultats. J'espère que cela aidera quelqu'un.

  1. Si vous utilisez -ls et souhaitez trier par nom de fichier, le 11e champ est le nom du fichier, vous pouvez donc effectuer les opérations suivantes. L'option sort -k peut également accepter plusieurs champs à trier.

    trouver /chemin -ls | trier -k11

  2. Si vous souhaitez un contrôle plus fin du grain, c'est-à-dire un tri par date/heure dans l'ordre croissant ou décroissant, utilisez l'option -printf "". Voir le manuel pour plus de détails, mais ce qui suit est un exemple qui s'imprimera avec des fractions de seconde donc c'est très précis.

EXEMPLE DATE/HEURE :2016-09-17+12:09:57.9013929800

find /path -printf "%T+ %p\n" | sort -n # Ascending

find /path -printf "%T+ %p\n" | sort -nr # Descending

Une autre façon de le faire sans caractères dans la chaîne de date/heure est.

EXEMPLE DATE/HEURE :20160917120013.8101685040

find /path -printf "%AY%Am%Ad%AH%AM%AS %p\n" | sort -n

Linux
  1. Comment intégrer la commande Mv après la commande Find ?

  2. Trouver les plus gros fichiers ou répertoires ?

  3. Comment trouver l'adresse IP de la passerelle par défaut sous Linux

  4. trouver :commande introuvable

  5. Trier en bash

Commande de tri Linux avec exemples

fd - Une alternative simple et rapide à la commande Find

Rechercher la commande sous Linux (Rechercher des fichiers et des répertoires)

Rechercher la commande sous Linux/UNIX

Quel est l'ordre par défaut du tri Linux ?

Commande de recherche Linux - afficher la progression