【发布时间】:2017-04-01 02:48:19
【问题描述】:
我正在尝试将超过一小时的文件移动到 aix 中名称指定特定小时的另一个文件夹中,这些文件几乎每分钟都非常迅速地填充。
我试图运行的脚本是:
find /log/traces/ -type f -mmin +59 -exec mv '{}' /Directory \;
上面的脚本给了我一个错误:
查找:错误的起始目录
我是 shell 脚本的新手。
我们将不胜感激。
--------------------已编辑-----------
我已经能够移动超过 1 小时的文件,但如果指定的文件夹不存在,它会创建一个具有命令中指定名称的文件并转储其中的所有文件。我现在运行的脚本是:
find /log/traces -type f -mmin +59 -exec mv '{}' /Directory/ABC-$(date +%Y%m%d_%H) \;
它会创建一个名为 ABC-[当前时间] 的文件。我想创建一个目录并将所有文件移动到其中。
【问题讨论】:
-
你能输出
ls -l /log/traces的结果吗 -
在脚本存在之前目录/Directory-(时间戳)是否存在?可能是没有移动文件的目录。
-
@randominstanceOfLivingThing 我得到了命令,它将文件移动到特定文件夹(如果该文件夹已经存在)。如果该文件夹不存在,它只会创建一个文件并转储该单个文件中的所有文件。即 'find /log/traces -type f -mmin +59 -exec mv '{}' /Directory/User\;'创建名为 user 的文件并将所有文件转储到该单个文件中。我需要用那个小时的文件创建文件夹。
-
只需在当前命令的开头添加(前置)
mkdir -p "/Directory/ABC-$(date +%Y%m%d_%H)";,如果该目录不存在,它将创建该目录。 (见 man mkdir) -
希望
$(date +%Y%m%d_%H)在创建目录和移动文件之间应该是一样的。我更喜欢有一个 shell 脚本来捕获变量中的时间戳并执行创建和移动。
标签: shell command-line aix