파일 끝에서 같은 이름의 파일을 삭제하십시오.

파일 끝에서 같은 이름의 파일을 삭제하십시오.

파일 끝에서 같은 이름의 파일을 삭제하십시오.

내 폴더와 하위 디렉터리에 다음과 같은 많은 파일이 있습니다.

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.php이는 and b.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 '{}' \;

관련 정보