짧은 Bash 스크립트를 사용 하여이 작업을 완전히 수행 할 수도 있습니다.
#!/bin/bash
set -eu
shopt -s nullglob
[ "$#" -eq 0 ] || cd -- "$1"
i=0
for f in *; do
printf '%d. %s\n' "$((++i))" "${f//$'\n'/^N}"
done |
cat -vt
당신은 공상하고 9 개 이상의 결과를 위해 줄 번호를 채울 수도 있습니다.
#!/bin/bash
set -eu
shopt -s nullglob
[ "$#" -eq 0 ] || cd -- "$1"
ls=(*)
pad=${#ls[@]}
pad=${#pad}
i=0
for f in *; do
printf '%*d. %s\n' "$pad" "$((++i))" "${f//$'\n'/^N}"
done |
cat -vt
용법
스크립트를 numbered-ls.sh현재 작업 디렉토리에 실행 파일로 저장했다고 가정하십시오 .
./numbered-ls.sh [DIRECTORY]
인수 DIRECTORY는 선택 사항이며 기본값은 현재 작업 디렉토리입니다.
설명
스크립트가 인수와 함께 호출 된 경우 작업 디렉토리를 첫 번째 인수의 경로로 변경하십시오.
현재 작업 디렉토리의 모든 항목을 일치시키고 살펴보십시오. 각 항목마다 카운터를 증가시키고 항목 이름과 함께 값을 인쇄하십시오. 항목 이름의 줄 바꿈 문자는로 바뀝니다 ^N.
cat -vt터미널을 제어 문자로 해석 할 수있는 인쇄 할 수없는 문자가 포함 된 파일 이름을 처리하기 위해 출력을 파이프합니다 .