https://unix.stackexchange.com/a/624808/说:
一个简单的方法:
cd
进入文件目录- 跑步
ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy ./output.mp3
仅当您 cd 进入实际目录而不是其快捷方式时,这才有效。
为什么“这仅在您 cd 进入实际目录而不是其快捷方式时才有效”?
cd
当我通过指向祖先文件夹的软链接进入文件文件夹时,它对我有用。
答案1
我思考答案是 UNIX/Linux 和 Windows 解决方案的混合。
关于如果您使用目录快捷方式则代码不起作用的声明对于 Windows 环境有效。
在 UNIX/Linux 下运行时,它似乎不是有效或必要的限制。对于 Cygwin 来说,这似乎也是不必要的限制,因为 Cygwin 不适用于 Windows 文件或目录快捷方式。
答案2
我相信问题在某些情况下发生,当 windows (我假设) 看到NTFS 链接(结点)而不是目标文件,并尝试在其中创建 ./output.mp3 文件(这可能会失败,具体取决于其位置和权限)。
您可以简单地尝试执行 : cd -P the_directory
,而不是简单地执行cd the_directory
: ,让 shell“解析”并找到“规范”路径,即真正的路径,而不是符号链接路径。
(如果你有很多符号链接或者 ntfs 等价物,这可能会有点棘手......)