删除文件末尾同名文件

删除文件末尾同名文件

删除文件末尾同名文件

我的文件夹和子目录中有很多文件,例如

ajax_hostel_room_master.php.php          class_hostel_registration.php.php
ajax_hostel_room_master.php.php.php      class_hostel_registration.php.php.php
ajax_hostel_room_shifting.php            class_hostel_room_allocation.php
ajax_hostel_room_shifting.php.php        class_hostel_room_allocation.php.php
ajax_hostel_room_shifting.php.php.php    class_hostel_room_allocation.php.php.php

我想保留 filename.php 并删除其他文件,例如 filename.php.php

答案1

rm -- *.php.php这将删除所有具有多个 php 扩展名的文件

对于您需要的所有子目录

find /scripts/tmp -name "*.php.php" -exec rm {} +

/scripts/tmp是我的文件和子目录所在的目录

答案2

要匹配重复扩展名,请使用zsh

rm -- *.*.*(e{'[[ $REPLY:t =~ "(\..*)\1$" ]]'})

递归地:

rm -- **/*.*.*(e{'[[ $REPLY:t =~ "(\..*)\1$" ]]'})

这将匹配a.php.phpandb.x.xc.x.y.x.y(and .php.php)。

ksh93

rm -- *@(.*)\1

递归地:

set -o globstar
rm -- **/*@(.*)\1

对于 GNU find,递归地:

find . -regex '.*\(\.[^/]*\)\1' -exec rm {} +

答案3

在要删除文件的目录的根目录下尝试此操作:

find . -name "*.php.php*" -exec rm '{}' \;

相关内容