Mam wiele plików o bardzo długich nazwach. Czy istnieje sposób na użycie ls -C i obcięcie nazw plików, aby uzyskać więcej kolumn dla ogólnego widoku?
Czy jest lepszy sposób na uzyskanie zwartej listy?
Mam wiele plików o bardzo długich nazwach. Czy istnieje sposób na użycie ls -C i obcięcie nazw plików, aby uzyskać więcej kolumn dla ogólnego widoku?
Czy jest lepszy sposób na uzyskanie zwartej listy?
Odpowiedzi:
Możesz zrobić coś takiego:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

( columnsto sz autogenem z GNU). Lub:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Używanie columnzgodnie z BSD lub bsdmainutilsDebianem lub jego pochodnymi.
zsh obsługuje także drukowanie rzeczy w kolumnach, dzięki czemu można zdefiniować funkcję taką jak:
setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
I użyj go jako:
c 20 *.txt
Aby wydrukować listę plików tekstowych w kolumnach, obciętych do 20 znaków.
Aby było trochę bardziej szalone, możesz dodać:
command_not_found_handler() {(($1)) && c "$@"}
W ten sposób możesz także:
20 *
Lub nawet:
8+8 *

Zakładając ekran z 80 kolumnami, lubię go używać
ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more
użyj ls -FCzamiast tego, aby posortować według aktualności
(Sidenote: moje lsjuż przewija się, ponieważ jest to pseudonim ls -CF --color | more -r. Nie jestem pewien, czy to najlepsza praktyka ...)