我需要在文件树中打印一些信息。我需要列出.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
日期只打印一次。
答案 0 :(得分: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")
答案 1 :(得分:0)
你可以尝试循环:
FECHA=`date '+%Y-%m-%d %H:%M'`
for f in `find ./ -name "*.rns"`; do
echo "$FECHA - $f" >> myLog.log
done
有帮助吗?