find . -maxdepth 1 -type f -name '*.mkv' -print0 | sort -Vz | xargs -0r mpv
Isso usa find
para exibir uma lista separada por NUL de todos os nomes de arquivos correspondentes a '* .mkv' no diretório atual, então GNU sort
(com -z
ou --zero-terminated
para entrada separada em NUL e -V
ou --version-sort
para classificar os nomes de arquivos) e, finalmente, xargs -0r mpv
para executar mpv
com todos os nomes de arquivos na ordem classificada como os argumentos.
Isso funcionará com qualquer nome de arquivo, mesmo aqueles com espaços, feeds de linha ou meta-caracteres do shell no nome.
AFAIK, apenas GNU sort
e sort
do FreeBSD atualmente suportam a opção -z
ou --zero-terminated
.