
ファイルの末尾から同じ名前のファイルを削除します。
私のフォルダとサブディレクトリには、次のような多くのファイルがあります。
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
これはandb.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 '{}' \;