У мене є ряд файлів з дуже довгими іменами. Будь ласка, чи існує спосіб використання ls -C та обрізання назв файлів, щоб отримати більше стовпців для загального перегляду?
Або є кращий спосіб отримати компактний список?
У мене є ряд файлів з дуже довгими іменами. Будь ласка, чи існує спосіб використання ls -C та обрізання назв файлів, щоб отримати більше стовпців для загального перегляду?
Або є кращий спосіб отримати компактний список?
Відповіді:
Ви можете зробити щось на кшталт:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"
( columns
це s
з автогеном GNU). Або:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Використання, column
як знайдено на BSD або bsdmainutils
Debian або його похідних.
zsh
також є підтримка для друку речей у стовпцях, щоб ви могли визначити функцію типу:
setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
І використовувати його як:
c 20 *.txt
Щоб надрукувати файли списку txt у стовпцях, усіченими до 20 символів.
І щоб зробити це трохи божевільніше, ви можете додати:
command_not_found_handler() {(($1)) && c "$@"}
Таким чином, ви також можете зробити:
20 *
Або навіть:
8+8 *
Припускаючи екран стовпця 80, я люблю використовувати
ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more
використовувати ls -FC
натомість для сортування за залишком
(Sidenote: мої ls
вже прокручуються, тому що це чуже ls -CF --color | more -r
. Не впевнений, що це найкраща практика ...)