如何在终端的 linux 命令中组合或粘贴文本?
我想执行以下ls -d $PWD/*
结果的linux 命令:例如。
/media/elias/2000_0101_004828_006.MP4
/media/elias/2000_0101_011328_007.MP4
/media/elias/2000_0101_013829_008.MP4
/media/elias/2000_0101_020328_009.MP4
/media/elias/2000_0101_021020_006.MP4
/media/elias/2000_0101_021620_006.MP4
Run Code Online (Sandbox Code Playgroud)
我想以生成的打印结果的方式执行 linux 命令:
file '/media/elias/2000_0101_004828_006.MP4'
file '/media/elias/2000_0101_011328_007.MP4'
file '/media/elias/2000_0101_013829_008.MP4'
file '/media/elias/2000_0101_020328_009.MP4'
file '/media/elias/2000_0101_021020_006.MP4'
file '/media/elias/2000_0101_021620_006.MP4'
Run Code Online (Sandbox Code Playgroud)
这是 ffmpeg concat 命令操作视频文件所需的 Videofiles.txt 所必需的。我想执行一个命令行来自动完成所有这些工作。linux 命令结果将保存在一个 txt 文件中,例如
ls -d $PWD/* > videofiles.txt
Run Code Online (Sandbox Code Playgroud)
那可能吗?
附:我的 ls 命令按日期顺序列出文件?
顺序不是由 决定的ls,它取决于LC_COLLATE应用于*您的语言环境的 shell glob的词法排序顺序。
也就是说,我会ls完全避免并做类似的事情
printf "file '%s'\n" $PWD/* > videofiles.txt
Run Code Online (Sandbox Code Playgroud)
(如果您只想匹配文件,您可以更改*为)。*.MP4.MP4
如果您希望按照修改时间(又名“mtime”)对文件进行排序ls -t,那么这在 bash 中是不可能的,但在 zsh 中使用glob 限定符ex.
printf "file '%s'\n" $PWD/*.MP4(om)
Run Code Online (Sandbox Code Playgroud)
按 mtime 升序排序(如ls -t)或
printf "file '%s'\n" $PWD/*.MP4(Om)
Run Code Online (Sandbox Code Playgroud)
按 mtime 降序排序(如ls -tr)。