for循环用日志记录移动文件

时间:2011-06-11 08:42:01

标签: bash logging for-loop

基本上我想要的是这个但是在for循环中..

echo `date +'['%H':'%M':'%S']'` - `mv -vf test* test/` > log.txt

除了可以在一行上打印所有内容之外,这可以正常工作。我希望它为每个移动的文件创建一个新行和一个日期戳。

现在我得到:

[10:12:36] - "test1.txt" -> "test/test1.txt" "test2.txt" -> "test/test2.txt" "test.txt" -> "test/test.txt"

但是想要:

[10:12:36] - "test.txt" -> "test/test.txt" 
[10:12:37] - "test1.txt" -> "test/test1.txt"
[10:12:38] - "test2.txt" -> "test/test2.txt"

我想我需要一个for循环来解决这个问题,但还是无法解决这个问题。我也不想在一行上使用变量。但那可能不可能?

Mat提供的正确答案是:

for i in `mv -vf test* test/` ; do echo `date +'['%H':'%M':'%S']'` - $i ; done > log.txt

1 个答案:

答案 0 :(得分:2)

你可以尝试:

IFS='
'; set -f
for i in `mv -vf test* test/` ; do echo `date +'['%H':'%M':'%S']'` - $i ; done