2012-03-03 4 views

答えて

2
ls | grep -v '\.lnx$' | xargs rm 
+1

が 'ls'のエイリアスを使用していると期待どおりに動作しない可能性があります – rbedger

13
find . -depth 1 -type f -not -name '*.lnx' -delete 

ファイル名(-not -name '*.lnx')と一致し、いつものように(-delete

それらを削除し、最初にこれをテストしていない、現在のディレクトリ(-depth 1)内のすべてのファイル(-type f)を見つけます。 -deleteを付けずに実行すると、一致するすべてのファイルが表示されます。

+0

'-type F'は必要ありません。彼はディレクトリを除外したいとは言わなかった。 – Manish

+4

"すべてのファイルを削除する" – nachito

14

あなたがthis使用することができます。

$ rm !(*.lnx) 

!(pattern-list) 
    Matches anything except one of the given patterns. 
    A pattern-list is a list of one or more patterns separated by a ‘|’. 
+4

良いですが、これを使用するには 'extglob'を有効にする必要があります(' shopt -s extglob'で)。 – Kevin

+0

Ubuntuでは 'extglob'がデフォルトでオンになっています。 – kev

+0

私は彼が彼がUbuntuにいると言ったところを逃しましたか?私はそれがどこにも述べられているか暗示されているとは思わない。それにもかかわらず、必ずしも答えのためにこのスレッドに来るすべての人のためにオンになるとは限らないので、注目に値する。 – Kevin

関連する問題