复制并重命名文件

复制并重命名文件

这是我想要备份的访问日志。

/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

答案1

我认为这应该可以解决问题。

for f in /var/log/httpd/access_log*; do cp $f /home/shantanu/$(basename $f).bak; done

答案2

ls /var/log/httpd/access_log* | xargs -I% cp % %.bak
mv /var/log/httpd/*.bak /to/somewhere

答案3

find access_log* -type f -execdir mv {} {}.bak \;

相关内容