使用查找将目录重命名为回收站目录

ccdavies

下面是检查路径中是否存在超过1天且符合名称条件的所有文件夹。如果找到该文件夹​​,则将其移动到“已删除邮件”文件夹。

find /Users/myname/Desktop/backups/websites/testwebsite.co.uk -maxdepth 1 -type d -mtime +1 -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' -exec mv {} /Users/myname/Desktop/backups/trash \;

我需要修改文件夹名称,以在末尾包含“ _renamed”。

我以为我可以使用mv中的花括号,但是现在意识到这也需要完整的文件夹路径。

find /Users/myname/Desktop/backups/websites/testwebsite.co.uk -maxdepth 1 -type d -mtime +1 -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' -exec mv {} /Users/myname/Desktop/backups/trash/{}_renamed \;

有什么方法可以修改文件夹路径而不复制该路径?

库萨兰达

是的,find使用路径名,而不使用文件名。

有两种直接的解决方案:

  1. 您可以提取路径名的文件名部分,并在所使用的目标路径名中使用它mv

    find /Users/myname/Desktop/backups/websites/testwebsite.co.uk \
        -maxdepth 1 -type d -mtime +1 \
        -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' \
        -exec sh -c 'mv "$1" "/Users/myname/Desktop/backups/trash/${1##*/}_renamed"' sh {} ';'
    

    在这里,${1##*/}与相同$( basename "$1" ),并且$1是由赋予sh -c脚本的路径名find

  2. 如果您的实现支持-execdir-exec可以使用find它。使用-execdir,给定的命令在找到的项目的父文件夹中执行,{}将是项目的基本名称(使用BSD find)或前缀为./(使用GNU find的基本名称

    find /Users/myname/Desktop/backups/websites/testwebsite.co.uk \
        -maxdepth 1 -type d -mtime +1 \
        -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' \
        -execdir mv {} /Users/myname/Desktop/backups/trash/{}_renamed ';'
    

有关的:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将文件重命名为子目录

将多个目录中的文件重命名为目录名

将子目录中的pdf文件重命名为子目录的名称

将子目录中的多个文件重命名为其目录名称

使用Powershell将目录中的所有文件夹重命名为单个数字或字符

我想使用Python 3将目录中的所有.txt文件重命名为.csv

在终端中将文件重命名为父目录的名称

将目录中的所有文件从$ filename_h重命名为$ filename_half?

zmv-将目录从kebab情况递归重命名为pascel情况

将目录从Pascal或camel情况递归重命名为kebab情况

PHP:以递归方式将目录中的所有文件重命名为小写

在bash中以递归方式将子目录重命名为新模式

C#将文件重命名为与其他目录中的文件相同的名称

如何自动将tmux Windows重命名为当前目录

将所有文件和目录重命名为小写(包括 unicode)的脚本

将子目录重命名为不同的日期格式

将目录从“ fname [mname] lname”重命名为“ lname,fname [mname]”

Winrar批处理脚本(略有改动)-将提取的文件重命名为当前目录

以递归方式将输出 PDF 文件重命名为子目录名称 Powershell

使用pathlib将一个目录破坏性地重命名为另一个现有目录

对于目录,将具有子目录名称+旧文件名的子目录中的文件重命名为新目录

如何递归地将目录树重命名为有效的 Windows 文件名?

使用 VBA 将 Excel 重命名为 CSV

使用php将图像重命名为产品ID

使用Gitflow将dev分支重命名为dev

PCManFM和xfe的回收站目录在哪里?

遍历子目录,并(1)将文件复制到另一个目录(2)将其重命名为其md5哈希

如何在保持文件扩展名的同时将目录中的文件重命名为其各自的目录名称?

如何在终端上将所有目录中的文件重命名为相同的名称