Чи можу я скоротити довгі імена файлів у списку ls


10

У мене є ряд файлів з дуже довгими іменами. Будь ласка, чи існує спосіб використання ls -C та обрізання назв файлів, щоб отримати більше стовпців для загального перегляду?

Або є кращий спосіб отримати компактний список?

Відповіді:


9

Ви можете зробити щось на кшталт:

ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

Приклад стовпців

( columnsце sз автогеном GNU). Або:

ls | cut -c1-20 | column -c"${COLUMNS:-80}"

приклад стовпця Використання, columnяк знайдено на BSD або bsdmainutilsDebian або його похідних.

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 *

zsh приклад


Блискуче, дякую. У своїй системі Fedora 12 я використав ls | вирізати -c1-20 | стовпців -W "$ {COLUMNS: -80}" і отримав усі мої файли на одному екрані.
Гаррі Вестон

0

Припускаючи екран стовпця 80, я люблю використовувати

ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more

введіть тут опис зображення

використовувати ls -FCнатомість для сортування за залишком


(Sidenote: мої lsвже прокручуються, тому що це чуже ls -CF --color | more -r. Не впевнений, що це найкраща практика ...)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.