0

我需要在文件中打印文件树中的一些信息。我需要列出每个带有.rns扩展名的文件。

我试试这个:

find ./ -name "*.rns" -print>>myLog.log

并且效果很好,但是我想将系统日期放在日志中的每一行之前。像这样:

2013-10-02 14:02 - /volume1/file_1.rns

我试试这个但不起作用:

FECHA=`date '+%Y-%m-%d %H:%M'`
VAR_FILE_INFO="$FECHA + `find ./ -name "*.rns"` "
echo "$VAR_PRUEBA"

该代码返回:

2013-10-02 14:02 - /volume1/file_1.rns
/volume1/file_2.rns
/volume1/file_3.rns
/volume1/file_3.rns

日期只打印一次。

4

2 回答 2

3

那这个呢?

find ./ -name "*.rns" -printf "$FECHA %p\n" >> myLog.log

%p指的是文件名,$FECHA是你刚刚存储的值。最后\n是换行(否则所有结果都会出现在同一行)。

测试

$ FECHA=`date '+%Y-%m-%d %H:%M'`
$ find t/ -printf "$FECHA %p\n" >> mylog.log
$ cat mylog.log
2013-10-02 14:27 t/
2013-10-02 14:27 t/myfile
2013-10-02 14:27 t/mydir
2013-10-02 14:27 t/mydir/something

它似乎不起作用。也许是因为我在 Unix 而不是 Linux 中测试发现:错误选项 -printf

然后你可以这样做:

for file in $(find ./ -name "*.rns")
do
  echo "$FECHA $file" >> myLog.log
done

或更好:

while read -r file;
do
  echo "$FECHA $file" >> myLog.log
done < <(find ./ -name "*.rns")
于 2013-10-02T12:25:14.390 回答
0

您可以尝试使用循环:

FECHA=`date '+%Y-%m-%d %H:%M'`
for f in `find ./ -name "*.rns"`; do
     echo "$FECHA - $f" >> myLog.log
done

它有帮助吗?

于 2013-10-02T12:24:41.983 回答