Я пишу файл sh У меня есть эта команда
cp test/*.txt NewDirectory/
насколько я понимаю, она будет проходить один за другим в папку test
1.txt
2.txt
5.txt
6.txt
но не копирует
3.txt
4.txt
потому что их там нет
Мне нужно, чтобы она выводила или в лог файл файлы, которые она не смогла найти или не смогла скопировать в новую папку. Как мне это сделать?
с cp test/*.txt NewDirectory/ 2>./output.log
но команда cp
с * будет вынуждена копировать файлы, которые существуют, и поэтому не покажет ошибку, если файлы не существуют
Ваше понимание неверно. Если существуют только 1,2,5,6, то в случае успешного копирования этих файлов сообщения об ошибке не будет. Если вам нужно разобрать N число или количество txt файлов в папке и посмотреть, какие из них не существуют, вы можете сделать что-то вроде: for x in {1..10}; do cp $x.txt NewDirectory/;done
.Далее вы можете добавить > output.log
, чтобы перенаправить вывод команды в файл.