在同一目录中查找,复制,重命名

时间:2014-07-10 19:10:28

标签: bash find rename cp

我是bash的新手,可以提供一些帮助。我期待创建一个命令,它将立即复制最新创建的文件与新的新。到目前为止,我想出了以下命令;

find /home/ian/Desktop/TEST/ -type f -mmin -1 -exec echo cp {} /home/ian/Desktop/TEST/ \;

但对于生活或我来说,我找不到重命名文件的方法,我环顾四周并尝试了各种方法,但似乎都没有。我想控制重命名,以便我可以为每个复制的文件添加'_backup'。

最好的方法是什么?对不起,如果这是一个基本问题

一切顺利, 伊恩

3 个答案:

答案 0 :(得分:0)

您可以将命令的输出设为字符串,例如a=$(my_command)。 (My_command是查找。)然后你可以说mv "$a" "$a".backup

答案 1 :(得分:0)

find /home/ian/Desktop/TEST/ -type f -mmin -1 -exec echo cp {} /home/ian/Desktop/TEST/{}_backup

答案 2 :(得分:0)

您可能需要使用-execdir代替-exec

-execdir command ;

-execdir command {} +
       Like -exec, but the specified command is run from the  subdirec‐
       tory  containing  the  matched  file,  which is not normally the
       directory in which you started find.

以下命令似乎按预期工作:

find /home/ian/Desktop/TEST/ -type f -mmin -1 -execdir echo cp \{} \{}_backup \;