为什么“这仅在您 cd 进入实际目录而不是其快捷方式时才有效”?

为什么“这仅在您 cd 进入实际目录而不是其快捷方式时才有效”?

https://unix.stackexchange.com/a/624808/说:

一个简单的方法:

  1. cd进入文件目录
  2. 跑步ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy ./output.mp3

仅当您 cd 进入实际目录而不是其快捷方式时,这才有效。

更多内容请见有关 Concatenate 的 ffmpeg wiki 页面

为什么“这仅在您 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 等价物,这可能会有点棘手......)

相关内容