名前にスペースを含むファイルを削除する

名前にスペースを含むファイルを削除する

名前にスペースが含まれているすべてのファイルを削除しようとしています。次のコマンドを使用しています。しかし、これはエラーを引き起こします。

注文する:ls | egrep '. ' | xargs rm

ここでコマンドを使用すると、ls | egrep '. 'ファイル名にスペースが含まれるすべてのファイル名が表示されます。ただし、出力をrmに渡そうとすると、すべてのスペース(先行または末尾)が削除されます。だから私のコマンドは正しく実行されません。

名前に空白が1つ以上あるファイルを削除する方法についてのアドバイスはありますか?

ベストアンサー1

rmコマンドに標準のワイルドカードを使用できます。

rm -- *\ *

これにより、名前にスペースを含むすべてのファイルが削除されます。スペースはエスケープされているため、シェルはスペースを区切り文字として解釈しません。追加すると、--ダッシュで始まるファイル名に関する問題を回避できます(引数として解釈されないrm)。

削除する前に各ファイルを確認するには、次の-iオプションを追加します。

rm -i -- *\ *

おすすめ記事