这是我想要备份的访问日志。
/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 \;