排除shell脚本上的文件扩展名

排除shell脚本上的文件扩展名,shell,Shell,目前我有一个shell脚本,但我需要更多的工作。(我对贝壳很糟糕…) 现在,它将扩展名类型为txt和csv的文件移动到特定目录。我还需要它,然后将所有其他非txt和csv文件移动到另一个目录进行归档 运行后是否有一种简单的方法: mv *.txt work mv *.csv work 请允许我: mv *.* 但不包括txt和csv?我非常感谢您的帮助/意见。听起来您差不多有答案了。尝试: mv *.txt work mv *.csv work mv * archive 这是因为,当它到达

目前我有一个shell脚本,但我需要更多的工作。(我对贝壳很糟糕…)

现在,它将扩展名类型为txt和csv的文件移动到特定目录。我还需要它,然后将所有其他非txt和csv文件移动到另一个目录进行归档

运行后是否有一种简单的方法:

mv *.txt work
mv *.csv work
请允许我:

mv *.*

但不包括txt和csv?我非常感谢您的帮助/意见。

听起来您差不多有答案了。尝试:

mv *.txt work
mv *.csv work
mv * archive

这是因为,当它到达最后一行时,所有的txt和csv文件都已经被移动了。

如果您在移动了所有不想移动的文件之后尝试移动这些文件,GreenGiant的回答很有意义。但是,假设您希望txt和csv文件保留在当前目录中。下面的解决方案使用find覆盖了该用例

find . -not -path "." -not -name "*.txt" -not -name "*.csv" -exec mv {} work \;

这看起来更复杂,但在某些情况下更有用。

啊!非常感谢。这很有道理谢谢你的快速回答!虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,只使用代码的答案是没有用的。
mv *.txt *.csv a_directory
mv * other_directory