我的服务器上有一个文件夹,里面有一些文件。这些都是自动化的,这意味着每天我们都会自动获得新文件,这些文件将覆盖旧文件。所以我想备份一下这些数据。我怎样才能复制到另一个文件夹中的所有这些文件重命名的文件与当前日期,而复制。
例如:我有home/webapps/project1/folder1
文件夹,其中包含4个文件:
- aaa.csv
- bbb.csv
- ccc.csv
- ddd.csv
现在,我想将这四个文件复制到不同的位置,如home/webapps/project1/folder2
。
在复制这些文件时,我想重命名每个文件并将当前日期添加到文件中。所以我在folder2
中的文件名应该是: - aaa091012.csv
- bbb091012.csv
- ccc091012.csv
- ddd091012.csv
我想为此编写一个shell脚本。请给予我一些想法或与此相关的一些示例脚本。
6条答案
按热度按时间hgb9j2n61#
在
bash
中,假设文件名没有空格:pu82cl6c2#
你可以使用像下面这样的脚本。您只需要更改日期选项以匹配所需的格式。
xlpyo6sf3#
ijxebb2r4#
有一个正确的方法来分割文件名和扩展名:Extract filename and extension in Bash
你可以这样应用它:
wfypjpf45#
说明:
--archive
确保以相同的所有权和权限复制文件。foo{bar,baz}
扩展为foobar foobaz
。rename
是一个常用的程序,可以准确地执行这种替换。PS:don't use
ls
for this。nkhmeac66#
你可以使用这个步骤是非常有用的: