【问题标题】:Find, copy, rename within the same directory在同一目录中查找、复制、重命名
【发布时间】:2014-09-01 07:06:45
【问题描述】:

我是 bash 新手,需要一些帮助。我正在寻找创建一个命令,该命令将立即用新创建的文件复制上次创建的文件。到目前为止,我想出了以下命令;

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

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

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

一切顺利, 伊恩

【问题讨论】:

    标签: bash find rename cp


    【解决方案1】:

    您可能需要使用-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 \;
    

    【讨论】:

    • 我还有一个问题,如果您有一个名为 TEST_MASTER 的文件,您如何运行上述文件并拥有名为 TEST_BACKUP 而不是 TEST_MASTER_BACKUP 的新文件?
    • @IanGrey He!他! “我还有一个问题”问另一个问题,你会看到...
    【解决方案2】:
    find /home/ian/Desktop/TEST/ -type f -mmin -1 -exec echo cp {} /home/ian/Desktop/TEST/{}_backup
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-10-13
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 2018-05-08
        • 1970-01-01
        • 2021-06-09
        • 1970-01-01
        • 2021-12-05
        相关资源
        最近更新 更多