web-dev-qa-db-ja.com

疑問符で始まるすべてのファイルを削除します

約4kのファイルがあるフォルダがあります。これらのファイルの一部は、?または!文字で始まります。それらを削除する必要がありますが、削除する式が見つかりません。

rm -f ./?*

すべてを削除するだけです。 lsでgrepを使用し、xargsを介してパイプし、ファイルを別のフォルダーに移動できますが、これを行う適切な方法があることを望んでいました。 ?ファイルと!ファイルの両方についてサポートが必要です。

23
recluze

特別なものは必要ありません。単に?グロブの一部と見なされないように:

rm -f ./\?*

これは!も:

rm -f ./\!*

または一挙に:

rm -f ./{\?,\!}*

更新

grepの出力をlsに提案していることがわかりました。 ls の出力を解析すべきではないという事実に注意を向けたかった

26
Joseph R.

私の場合、文字は実際には疑問符ではなく、コンソールに表示できないUnicode文字でした。

rm -i *を使用するとうまくいきました。これを実行したくない場合は、 http://www.cyberciti.biz/tips/delete-remove-files-with-inodeで説明されているように、inodeで削除することもできます。 -number.html

Iノードを見つけるには、次のコマンドを使用します。

ls -il

次に行います:

find . -inum [inode-number] -exec rm -i {} \;
14
Jonathan