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).