我问一个关于查找,复制和重命名的问题,可以在Find, copy, rename within the same directory
找到答案很棒并且解决了我在该线程中遇到的问题,但它确实提出了另一个关于如何重命名文件的一部分的问题....例如,当运行此命令时;
find /home/ian/Desktop/TEST/ -type f -mmin -1 -execdir echo cp \{} \{}_backup \;
并且该文件名为TEST_MASTER,如何运行上述文件并使用名为TEST_BACKUP的新文件而不是TEST_MASTER_BACKUP?
我可以通过直接运行新的重命名命令来解决这个问题,如下所示;
find /home/ian/Desktop/TEST/ -type f -mmin -1 -execdir cp \{} \{}_backup \; ;
rename __MASTER_backup _backup *MASTER_backup ;
但必须有办法一次性完成这项工作吗?
一切顺利, 伊恩
答案 0 :(得分:1)
您可以使用此find
命令:
find /home/ian/Desktop/TEST/ -type f -mmin -1 -execdir bash -c 'cp "$1" "${1%%_*}_BACKUP"' - '{}' \;
答案 1 :(得分:0)
我的回答与 anubhava 几乎相同:
find /home/ian/Desktop/TEST/ -type f -name '*_MASTER' -mmin -1 -execdir \
bash -c 'mv $1 ${1/MASTER/BACKUP}' - \{} \;
这将只包含 备份*_MASTER
文件。如果您还需要备份其他文件(并在最后添加额外的_BACKUP
,请投票给anubhava!