bash将带星号的文件移动到另一个文件夹

时间:2013-03-28 07:18:34

标签: bash mv

我在尝试将具有类似字词的文件夹中的文件移到另一个文件夹中时遇到问题....它正在吐出来说没有这样的文件或目录......

这就是我正在做的事情:

mv "$OUTPUT_DIRECTORY/$RANDOM6* $OUTPUT_DIRECTORY/$YEAR/$MONTH/$DAY/"

提前谢谢

2 个答案:

答案 0 :(得分:3)

你真的希望在双引号内有变量引用(例如$OUTPUT_DIRECTORY)以防止shell过度解释它们的内容(例如将空格视为单词分隔而不仅仅是文件名的一部分),但是你不能引用星号或源和目标之间的空格,否则将不会被解释。所以这是我建议使用的:

mv "$OUTPUT_DIRECTORY/$RANDOM6"* "$OUTPUT_DIRECTORY/$YEAR/$MONTH/$DAY/"

请注意,第一个字符串部分是双引号(所有部分都带有变量),部分没有引用(星号)。这使得shell在字符串的每个部分应用适当的级别和类型的解释。

答案 1 :(得分:0)

编程不好或没有,但这有效,我只需要删除引号:

mv $OUTPUT_DIRECTORY/$RANDOM6* $OUTPUT_DIRECTORY/$YEAR/$MONTH/$DAY/

所有变量都是先发布的....