【问题标题】:find all files with no .mov extention and add .mov找到所有没有 .mov 扩展名的文件并添加 .mov
【发布时间】:2013-06-25 05:20:56
【问题描述】:

我一直使用这篇文章作为参考 (recursively add file extension to all files),它让我达到了 90% 的目标,但我不知道如何完成我需要的 shell 脚本。

这是我目前制作的脚本:

find /Users/Floyd/Desktop/test -type f -not -name "*.*" -not -ipath "*zworkfolder*" -exec mv '{}' '{}'.mov \;

我想在“test”文件夹中查找所有没有 .mov 扩展名的文件,并将扩展名添加到文件名的末尾。在大多数情况下它可以工作,但是当我遇到带有“。”的文件名时遇到了问题。在文件名中。
前任。 “A020_C020_0321R7_001_A020_C020_0321R7_001.new.02”。

我该怎么做才能让它为这些文件名添加 .mov 扩展名?

谢谢。

弗洛伊德。

【问题讨论】:

  • 您的意思是“没有 .mov 扩展名的文件”还是“没有扩展名的文件”?或者是其他东西? -not -name "*.*" 将消除任何带有扩展名的文件(即文件名中某处有一个点)。如果你不想这样,不要把它放在命令中。
  • 你需要的不是-not -name "*.mov"吗?

标签: bash file shell command-line file-extension


【解决方案1】:

如果您不想要匹配 *.mov 的文件,则应按此过滤,而不是更通用的 *.*.. 因此以下应该可以解决问题:

  find /Users/Floyd/Desktop/test \
       -type f -not -name "*.mov" -not -ipath "*zworkfolder*" \
       -exec mv \{\} \{\}.mov \;

【讨论】:

  • 谢谢!简单的问题,简单的答案。现在可以了。以为我昨晚试过了,但我累了,谁知道呢。再次感谢。
猜你喜欢
  • 2012-12-24
  • 2019-07-07
  • 1970-01-01
  • 2016-09-06
  • 2019-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
相关资源
最近更新 更多