다음과 같은 문제가 있습니다. 프로그램이 잘못된 순서로 파일을 읽고 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-sort
xargs -0r mpv
mpv
이는 이름에 공백, 개행 또는 쉘 메타 문자가 포함된 파일 이름을 포함하여 모든 파일 이름에 적용됩니다.
AFAIK, 현재 GNU sort
및 FreeBSD 만 or 옵션을 sort
지원합니다 .-z
--zero-terminated