【发布时间】:2013-07-06 23:07:43
【问题描述】:
我有一个包含数千个文件的目录。 他们有一个特定的创建日期。 现在我想在特定时间将这些文件归档到特定目录。
例子:
文件创建于:
May 15 testmay.txt
Jun 10 testjun.txt
Jul 01 testjul.txt
它们应该在那些目录中
/2013-05/testmay.txt
/2013-06/testjun.txt
/2013-06/testjul.txt
我已经有了这个来将远程服务器中的文件同步到临时月份目录。
#!/bin/sh
GAMESERVER=game01
IP=172.1.1.1
JAAR=`date --date='' +%Y`
MAAND=`date --date='' +%m`
DAG=`date --date='' +%d`
LOGDIR=/opt/archief/$GAMESERVER
if [ ! -e $LOGDIR/$JAAR-$MAAND ]; then
mkdir $LOGDIR/$JAAR-$MAAND/tmp
chmod -R 770 $LOGDIR/$JAAR-$MAAND/tmp
fi
rsync -prlt --remove-source-files -e ssh root@$IP:/opt/logs/sessions/ $LOGDIR/$JAAR-$MAAND/tmp
chmod -R 770 $LOGDIR/ -R
我怎样才能完成这个脚本?
【问题讨论】:
-
您能否更明确地说明您希望接下来发生的事情?只需用文字一步一步地解释您想要发生的事情。
-
正如您在脚本中看到的,我将大量文件捕获到 tmp 目录,现在 tmp 目录包含数千个文件。我希望现在整理这些文件: - 在特定月份创建的文件应移动到为该月创建的目录。
-
看起来这种情况已经发生了……
$LOGDIR/$JAAR-$MAAND/不是特定月份和年份的目录吗? -
是的,但是在我获取文件的地方,/opt/logs/sessions/,有很多来自不同月份的文件。所以它会复制它们,但不会根据创建日期对它们进行排序。
-
您将如何确定创建日期?您是在文件中搜索,还是按时间戳搜索?另外,您会在 $LOGDIR/$JAAR-$MAAND/ 下创建更多的日期目录吗?我很困惑为什么要将所有文件复制到以单个日期命名的目录中,而不是将它们复制到 $LOGDIR/tmp 之类的目录中。
标签: bash date directory mv file-structure