Mám velké množství souborů a adresářů v jednom adresáři.
Potřebuji je seřadit podle oprávnění.
Například
drwx------
drwxr-xr-x
drwxr-x---
Jen by mě zajímalo, jestli můžeme třídit soubory a adresáře pomocí ls
?
Přijatá odpověď:
ls
nepodporuje přímo řazení podle oprávnění, ale můžete jej zkombinovat s příkazem sort:
ls -l | sort
Můžete použít -k
možnost řazení pro zahájení shody od konkrétního znaku, formát je -k FIELD.CHAR
, oprávnění jsou prvním polem v ls
výstup. Tak např. -k 1.2
bude začínat druhým znakem řetězce oprávnění, který bude ignorovat jakýkoli příznak adresáře / zařízení / odkazu atd., nebo -k 1.5
pro řazení podle skupinových oprávnění.
Pokud nechcete další výstup ls -l
, můžete jej odstranit pomocí awk:
ls -l | sort | awk '{ print $1, $NF}'
Tím se vytiskne pouze první pole (oprávnění) a poslední pole (název souboru).