linux - 유틸리티를 사용하여 파일 읽기 또는 출력 순서(정렬) 설정

linux - 유틸리티를 사용하여 파일 읽기 또는 출력 순서(정렬) 설정

다음과 같은 문제가 있습니다. 프로그램이 잘못된 순서로 파일을 읽고 ls.

몇 가지 옵션을 시도했지만 LC_COLLATE내가 찾고 있는 기본 설정과 일치하는 옵션이 없으므로 할 수 있는 일이 더 많은 것 같습니다.

잘못된 시퀀스를 생성하는 명령의 예:

user@host: /home/user/Video $ mpv *.mkv

/home/user/Video에는 150개의 파일이 있습니다. 아래는 처음 12개 파일입니다. 프로그램의 명령은 다음과 같습니다 mpv *.mkv.

TVSeriesName - 01.mkv
TVSeriesName - 02.mkv
TVSeriesName - 03.mkv
TVSeriesName - 04.mkv
TVSeriesName - 05.mkv
TVSeriesName - 06.mkv
TVSeriesName - 07.mkv
TVSeriesName - 08.mkv
TVSeriesName - 09.mkv
TVSeriesName - 10.mkv
TVSeriesName - 100.mkv
TVSeriesName - 101.mkv

앞에 0이 있어도 11을 읽기 전에 100을 읽습니다.

이상적으로는 앞에 0이 없어도 올바른 1-150 순서로 읽어야 합니다.

ranger내가 원하는 것은 파일 관리자의 기본 순서 와 유사한 범용 파일 읽기 및 정렬 순서를 갖는 것입니다 .

예:

.1-hiddendir/
.2-hiddendir/
.a-hiddendir/
.b-hiddendir/
.C-hiddendir/
.d-hiddendir/
.E-hiddendir/
1-dir/
2-dir/
A-dir/
b-dir/
c-dir/
D-dir/
.1-dotfile
.2-dotfile
.a-dotfile
.b-dotfile
.C-dotfile
1-file
2-file
a-file
B-file
c-file

운영 체제:아치 리눅스,FS:외부 4

환경 설정이나 Linux 배포판을 통해 이를 달성할 수 있습니까?

답변1

find . -maxdepth 1 -type f  -name '*.mkv' -print0 | sort -Vz | xargs -0r mpv

이것은 find현재 디렉토리에서 "*.mkv"와 일치하는 모든 파일 이름의 NUL 구분 목록을 출력하는 데 사용되며 그 뒤에는 GNU sort( NUL 구분 입력을 사용 -z하거나 파일 이름을 정렬 하기 위해), 마지막으로 The에 의해 실행되는 모든 파일 이름이 표시됩니다. 매개변수 정렬 순서.--zero-terminated-V--version-sortxargs -0r mpvmpv

이는 이름에 공백, 개행 또는 쉘 메타 문자가 포함된 파일 이름을 포함하여 모든 파일 이름에 적용됩니다.

AFAIK, 현재 GNU sort및 FreeBSD 만 or 옵션을 sort지원합니다 .-z--zero-terminated

관련 정보