ls 목록에서 긴 파일 이름을자를 수 있습니까?


10

이름이 매우 긴 여러 파일이 있습니다. ls -C를 사용하고 파일 이름을 잘라서 전체보기를 위해 더 많은 열을 얻는 방법이 있습니까?

아니면 간단한 목록을 얻는 더 좋은 방법이 있습니까?

답변:


9

당신은 다음과 같은 것을 할 수 있습니다 :

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

열 예

(그건 columnssGNU의 자동 생성에서). 또는:

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

열 예columnBSD 나 bsdmainutils데비안 또는 그 파생물 에서 발견 된대로 사용 .

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}"줄에 모든 파일을 한 화면에 표시했습니다.
Harry Weston

0

80 열 화면을 가정하면 사용하고 싶습니다.

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

여기에 이미지 설명을 입력하십시오

ls -FC최근순으로 정렬하려면 대신 사용


(Sidenote : ls의 별칭으로 인해 이미 스크롤되었습니다 ls -CF --color | more -r. 가장 좋은 방법은 확실하지 않습니다 ...)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.