Tôi có một số tập tin với tên rất dài. Xin vui lòng, có cách nào để sử dụng ls -C và cắt bớt tên tệp để có thêm cột cho chế độ xem tổng thể không?
Hoặc có cách nào tốt hơn để có được một danh sách nhỏ gọn?
Tôi có một số tập tin với tên rất dài. Xin vui lòng, có cách nào để sử dụng ls -C và cắt bớt tên tệp để có thêm cột cho chế độ xem tổng thể không?
Hoặc có cách nào tốt hơn để có được một danh sách nhỏ gọn?
Câu trả lời:
Bạn có thể làm một cái gì đó như:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"
(đó là columns
với một s
autogen GNU). Hoặc là:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Sử dụng column
như được tìm thấy trên BSD hoặc trong bsdmainutils
Debian hoặc các dẫn xuất của nó.
zsh
cũng có hỗ trợ in mọi thứ trong các cột, vì vậy bạn có thể xác định một chức năng như:
setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
Và sử dụng nó như:
c 20 *.txt
Để in danh sách các tệp txt trong các cột, cắt ngắn thành 20 ký tự.
Và để làm cho nó điên hơn một chút, bạn có thể thêm:
command_not_found_handler() {(($1)) && c "$@"}
Bằng cách đó, bạn cũng có thể làm:
20 *
Hoặc thậm chí:
8+8 *