цикл для записи движущихся файлов с датой - PullRequest
2 голосов
/ 11 июня 2011

По сути, я хочу это, но в цикле ...

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, чтобы решить эту проблему, но я не смог понять это. Я также не хочу использовать переменные, поскольку я хочу это в одной строке. Но это может быть невозможно?

Правильный ответ, предоставленный Матем, был:

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

1 Ответ

2 голосов
/ 11 июня 2011

Вы можете попробовать:

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