파일 끝에서 같은 이름의 파일을 삭제하십시오.
내 폴더와 하위 디렉터리에 다음과 같은 많은 파일이 있습니다.
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.x
및 c.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 '{}' \;