2

のような名前のすべてのファイルを削除したい: *~ or #*#.
私が試してみました:

find "dir" -name '#*#' -or -name '*~' -delete

ただし、末尾が ~ のファイルのみが削除され、先頭と末尾が # のファイルは削除されません

どうやってやるの?

4

3 に答える 3

1

まず、-nameプライマリでパターンを指定する必要があります。##は、正確##にという名前のファイル*##に一致しますが、 で終わるすべてのファイルに一致します##。次に、 の 2 つの使用法をグループ化してname、いずれか 1 つの一致が削除対象の一致としてカウントされるようにする必要があります。

find dir \( -name '*##' -or -name '*~' \) -delete
于 2013-07-15T17:39:10.103 に答える
0

私は私の解決策を見つけます: find dir -name " ~" -delete -or -name "# #" -delete

于 2013-07-16T12:06:44.913 に答える
0

-regexスイッチで見つけるのはどうですか:

find -E . -regex "^./(~|##)$" -exec rm '{}' \;

-E拡張された (最新の) 正規表現機能をサポートするために使用されています。

于 2013-07-15T17:33:42.427 に答える