2016-05-04 18 views
0

"#"で始まるファイル削除の方法で間違っていることを教えてもらえますか?次のアプローチ(rm + xargs)で何が間違っていますか

ディレクトリ内のファイル:

[email protected]:~/.scratch/hmm$ ls 
five #four #one six #three #two 
[email protected]:~/.scratch/hmm$ 

[email protected]:~/.scratch/hmm$ ls . |grep "#.*" |xargs rm -rf 
[email protected]:~/.scratch/hmm$ ls 
five six 
[email protected]:~/.scratch/hmm$ 

シモンズ:次の質問を参照して

Bash: How do I delete all my textfiles starting with #?

+1

なぜ 'ls'と' grep'が必要ですか?それはちょうど 'rm - ./#*' – anubhava

+1

でもできます。あなたの以前の質問にも私の似たようなコメントを見ることができます – anubhava

+0

私はしていましたが、私はあなたがもっとシンプルなので、もっと好きでした...私はxargsにあまり慣れていないので、xargsが正当に使用されているかどうか、あるいは偶然によって私が望む結果を得ているかどうかを知りたい。 – monk

答えて

0

lsをお願いすることはいくつかの列内のファイルを一覧表示するかもしれない、とあなたの正規表現を最初に固定されていませんのいずれかを指定します。空白を含むファイル名も問題になります。

+0

ああ、今すぐ入手しました。 #を挟んでいるファイルは削除できます。 以下が良いはずです ls。 | grep "^#。*" | xargs rm -rf – monk

+0

より良いが、まだ十分ではない。最低でも、 'ls -1'と言う必要があります。 –

+0

@MichaelVehrs 'ls'は標準出力が端末でない場合、デフォルトで1つのカラムになります。 – chepner

関連する問題