如何在终端中合并或粘贴 Linux 命令中的文本?
我想执行以下 Linux 命令,ls -d $PWD/*
其结果是:例如。
/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
我想要以如下方式执行 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'
这是 ffmpeg concat 命令操作视频文件所需的 Videofiles.txt 所必需的。我想执行一个命令行来自动完成所有这些工作。linux 命令结果将保存在 txt 文件中,例如
ls -d $PWD/* > videofiles.txt
那可能吗?
附言:我的 ls 命令按日期顺序列出文件?
答案1
该顺序不是由决定的,它取决于应用于您所在语言环境的shell globls
的词汇排序顺序。LC_COLLATE
*
也就是说,我会ls
完全避免,并做一些类似的事情
printf "file '%s'\n" $PWD/* > videofiles.txt
(如果您只想匹配文件,则可以更改*
为)。*.MP4
.MP4
如果你希望文件按修改时间(又名“mtime”)排序,就像你使用 时那样ls -t
,那么这在 bash 中是无法实现的,但在 zsh 中可以使用glob 限定符前任。
printf "file '%s'\n" $PWD/*.MP4(om)
按 mtime 升序排序(如ls -t
)或
printf "file '%s'\n" $PWD/*.MP4(Om)
按 mtime 降序排序(如ls -tr
)。