1

我在尝试将具有类似措辞的文件夹中的文件删除到另一个文件夹时遇到问题....它吐出说没有这样的文件或目录...

这就是我正在做的事情:

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

先感谢您

4

2 回答 2

3

您确实希望$OUTPUT_DIRECTORY在双引号中包含变量引用(例如 ),以防止 shell 过度解释其内容(例如,将空格视为分词符,而不仅仅是文件名的一部分),但您不能在源代码和源代码之间使用星号或空格引用的目的地,否则它们将不会被解释。所以这是我推荐使用的:

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

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

于 2013-03-28T14:40:13.053 回答
0

编程是否糟糕,但这有效,我只需要删除引号:

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

所有变量都是事先发出的......

于 2013-03-28T07:32:32.423 回答