Назад | Перейти на главную страницу

копировать и переименовывать файлы

Вот мои журналы доступа, которые я хочу сохранить.

/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 \;