Как выстроить список ls -l файлов и каталогов в колонку вместо того, чтобы печатать по горизонтали?

-D, --dired
генерировать вывод, предназначенный для режима Emacs dired .

0
14.02.2018, 17:11
3 ответа
ls -1

enumerará un archivo por línea. Este es el valor predeterminado cuando la salida de lsse redirige a cualquier lugar que no sea una terminal.

Para obtener el resultado que busca, sería mejor que hiciera algo como

ls -l | awk 'NR > 1 { print $9 ":" $1 }'

o mejor aún,

stat -c "%n:%A" *

aunque ambos enumeran todos los permisos, no solo los permisos de grupo. Para ver solo los permisos de grupo, use

ls -l | awk 'NR > 1 { print $9 ":" substr($1,5,3) }'

o

stat -c "%n:%A" * | sed 's/....\(...\)...$/\1/'

(sombrero -propina a usuario1404316 para la expresión sed).

Las variantes de análisisls-no aceptan espacios y otros caracteres en blanco en los nombres de archivo, por lo que no deben usarse en general .

3
28.01.2020, 02:16

Si desea los archivos solo para el usuario actual.

ls -l | awk -v var="$(whoami)" '$4 == var {print $9}'

Eso solo imprimirá archivos que pertenezcan al usuario actual, en el formato que requiera.

0
28.01.2020, 02:16

Hay una solución mucho más sencilla si tiene acceso a una versión de findque incluye las extensiones GNU. Para averiguarlo, ejecute man findy busque el-printf(Para hacer eso, primero presione/^ *-printf). Si lo haces, estás de suerte, porque tu solución podría ser:

find. -maxdepth 1 -type f -printf "%f: %M\n" | sed 's/....\(...\)...$/\1/'

Como beneficio adicional, esta respuesta funcionará en el caso inusual de un nombre de archivo incluyendo el carácter de dos puntos.

2
28.01.2020, 02:16

Теги

Похожие вопросы