按“文件 '*.mp4'”列出 MP4 到 .txt

0 command-line ls mp4

我想.txt用一个文件夹的所有 mp4 文件创建一个,但垂直和

file '/root/mp4/*.mp4'
Run Code Online (Sandbox Code Playgroud)

逐行。在 Windows 中它就像

(for %i in (*.mp4) do @echo file '%i') > files.txt
Run Code Online (Sandbox Code Playgroud)

des*_*ert 5

我不确定我是否正确理解目标,但是如果您希望每一行都阅读

file '/full/path/to/filename.mp4'
Run Code Online (Sandbox Code Playgroud)

我建议使用find这种方式:

find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n"
Run Code Online (Sandbox Code Playgroud)

这将在当前工作目录中搜索名称匹配的文件(~+bash's Tilde Expansion扩展到完整路径)*.mp4并以指定格式打印它们:“file”后跟一个制表符,文件名用单引号括起来,后跟换行符字符——如果你想要一个空格而不是制表符,只需\t用一个空格代替。如果要将输出存储在文件中files.txt,只需添加>files.txt到命令行即可。请注意files.txt,如果您想附加到文件 use ,这将默默地覆盖任何现有的>>files.txt

示例输出

$ 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'
Run Code Online (Sandbox Code Playgroud)

不过,若你想files.txt遏制输出file 'some.mp4',你可以使用file直接:

file *.mp4 >files.txt     # with relative paths
file ~+/*.mp4 >files.txt  # with absolute paths
Run Code Online (Sandbox Code Playgroud)