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}"
( columns
to s
z autogenem z GNU). Lub:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Używanie column
zgodnie z BSD lub bsdmainutils
Debianem 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 -FC
zamiast tego, aby posortować według aktualności
(Sidenote: moje ls
już przewija się, ponieważ jest to pseudonim ls -CF --color | more -r
. Nie jestem pewien, czy to najlepsza praktyka ...)