Não sei se entendi bem o objetivo, mas se você quiser que todas as linhas sejam lidas
file '/full/path/to/filename.mp4'
Sugiro usar find
desta maneira:
find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n"
Isso pesquisa o diretório de trabalho atual ( ~+
é expandido para o caminho completo por% de Tilde Expansion bash
) para arquivos cujo nome corresponde a *.mp4
e os imprime no formato especificado: "file" seguido por um tab e o nome do arquivo entre aspas simples seguidas por um caractere de nova linha - se você quiser um espaço ao invés da aba, simplesmente substitua \t
por um espaço. Se você quiser armazenar a saída em um arquivo files.txt
, basta adicionar >files.txt
à linha de comando. Observe que isso substituirá silenciosamente qualquer files.txt
existente, se você quiser anexar ao arquivo use >>files.txt
.
Exemplo de saída
$ find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n"
file '/home/dessert/test/a.mp4'
file '/home/dessert/test/b.mp4'
$ find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n" >files.txt
$ cat files.txt
file '/home/dessert/test/a.mp4'
file '/home/dessert/test/b.mp4'
Se, no entanto, você quiser que files.txt
contenha a saída de file 'some.mp4'
, será possível usar file
diretamente:
file *.mp4 >files.txt # with relative paths
file ~+/*.mp4 >files.txt # with absolute paths