在重命名每个文件以从名称(即-2b0fd460_1426b77b1ee_-7b8e)中删除随机字符串部分的同时,如何将备份目录中的所有文件复制(不更改日期的归档样式)到用户目录?
cp来自:
/backup/path/data/Erp.2014.02.16_16.57.03-2b0fd460_1426b77b1ee_-7b8e.etf
到:
/home/user/data/Erp.2014.02.16_16.57.03.etf
每个文件将始终以“ Erp”开头。然后是日期时间戳字符串,然后是随机字符串,然后是扩展名“ .etf”。我想保留所有名称元素,包括日期时间戳。我只想删除随机字符串。
随机字符串允许同一文件的多个备份。但是,在这种情况下,我只运行了fdupes,并且没有重复项。因此,我可以简单地恢复所有文件,删除随机字符串。
我正在寻找单行bash命令来执行此操作。
如果那行不通,我可以分两个或两个以上的步骤来完成。我通常使用KRename,但在这种情况下,我需要使用bash进行操作。(我正在远程工作。)
pax
可以一次完成所有操作。您可以这样做:
cd /backup/path/data && pax -wrs'/-.*$/.etf/' Erp*etf /home/user/data
pax
默认情况下,保留时间,但是可以添加-pe
以保留所有内容(最好以root身份完成)或-pp
保留权限,例如:
cd /backup/path/data && pax -wrs'/-.*$/.etf/' -pe Erp*etf /home/user/data
否则(pax
默认情况下通常不可用),一定要比a更好地进行复制rename
:
cp -a /backup/path/data/Erp*.etf /home/user/data
rename 's/-.*$/.etf/' /home/user/data/Erp*.etf
这样,每个文件不会启动不同的进程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句