我正在编写一个Bash Shell脚本,需要确定提供的MP3音频文件是有效还是无效。我将如何在Bash中实现这一目标?
例如假冒:> file.mp3
或mv file.txt file.mp3
答案 0 :(得分:5)
这取决于你想要的确定程度。
只需查看扩展程序:您可以轻松{B}中提供的文件check just the extension:
if [ ${file: -4} == ".mp3" ]
基本上取字符串file
的最后四个字符并断言它等于.mp3
检查文件标题:
稍微更有把握,这将检查实际文件数据的一小部分。您可以使用Bash中的file
函数checking the Mime-Type of the file执行此操作。这将为你提供Mime-Type。
但是,这些可能是欺骗性的,您无法确定文件中的实际数据是否有效。要做到这一点,您需要深入检查二进制数据,并且可能实际解码它。这不是你可以用简单的Bash脚本做的事情。
自行检查文件数据: 您可以在命令行中使用FFMpeg和FFProbe来测试文件内容。我认为最好的选择是FFProbe,因为它会为您提供大量有关该文件的数据。如果您仍有疑问,请尝试将您的脚本添加到您的问题中,以获得更多帮助。