Вот мои журналы доступа, которые я хочу сохранить.
/var/log/httpd/access_log
/var/log/httpd/access_log.1
/var/log/httpd/access_log.2
/var/log/httpd/access_log.3
...
Я хочу скопировать все эти файлы, но с другим именем:
Следующее работает, как ожидалось, но можно ли написать одну команду, предполагая, что будет много файлов для копирования?
cp /var/log/httpd/access_log /home/shantanu/access_log.bak
cp /var/log/httpd/access_log.1 /home/shantanu/access_log.1.bak
Я думаю, это должно помочь.
for f in /var/log/httpd/access_log*; do cp $f /home/shantanu/$(basename $f).bak; done
ls /var/log/httpd/access_log* | xargs -I% cp % %.bak
mv /var/log/httpd/*.bak /to/somewhere
find access_log* -type f -execdir mv {} {}.bak \;