J'ai un grand nombre de fichiers et de répertoires dans un seul répertoire.
Je dois les trier en termes d'autorisations.
Par exemple
drwx------
drwxr-xr-x
drwxr-x---
Je me demande simplement si nous pouvons trier les fichiers et les répertoires en utilisant ls ?
Réponse acceptée :
ls ne prend pas directement en charge le tri par autorisations, mais vous pouvez le combiner avec la commande sort :
ls -l | sort
Vous pouvez utiliser le -k option de tri pour commencer la correspondance à partir d'un caractère spécifique, le format est -k FIELD.CHAR , les autorisations sont le premier champ du ls production. Donc par ex. -k 1.2 commencera à partir du deuxième caractère de la chaîne d'autorisation, qui ignorera tout indicateur de répertoire / périphérique / lien, etc., ou -k 1.5 pour trier par autorisations de groupe.
Si vous ne voulez pas la sortie supplémentaire de ls -l , vous pouvez le supprimer avec awk :
ls -l | sort | awk '{ print $1, $NF}'
Cela n'imprimera que le premier champ (les permissions) et le dernier (le nom du fichier).