2013-03-16 6 views
5

ディレクトリ内の各ファイルの内容をクリアするには、単一のコマンド(ループなし)で可能ですか?ディレクトリ内のすべてのファイルの内容を空にすることは可能です

+2

なぜあなたはループを避けたいですか? – nneonneo

+1

よく作成されたAWKまたはBashコマンドをプログラミングの質問とみなしますか? –

+0

コマンドラインから1つのコマンドを実行したい。私はファインタイプのエフエックスエコーでそれを行ういくつかの方法があると確信しています。 "" .....ただカントしてください。 –

答えて

6

使用TRUNCATE:

truncate -s 0 directory/* &> /dev/null 
9

これは地獄のように醜いですが、それは動作します:

find . -type f -exec sh -c 'echo -n "" > $1' sh {} \; 

これは、すべてのサブディレクトリ内のすべてのファイルを消去します。ただ、現在のディレクトリ内のファイルをクリアするには

for i in *; do cat /dev/null > $i; done 

(はい、それはループだが、それは1行です。)

+0

[this](https://gist.github.com/qaisjp/8871c717ec300d704ae3)は私にとっては良いことでしたが、printfの出力を ""に変更したいかもしれません また、 'echo -n" "'は実際には '-n'を各ファイルに入れます。 – qaisjp

+2

'echo -n" "'は不要です。 ''> $ 1''が行います。 – rymo

+0

美しい! :-D :-p –

関連する問題