2

コマンドを使用ls -lして、フォルダー内のすべてのファイル サイズを確認します。.txtそれをファイルに出力する方法を誰か助けてくれませんか。

4

6 に答える 6

6

ターミナルを開き、次のコマンドを使用します。

ls -l > yourfile.txt

http://www.tuxfiles.org/linuxhelp/iodirection.html

于 2012-07-27T18:44:01.787 に答える
5

あるファイルのサイズだけfooをテキスト ファイルに入れたい場合out.txtは、おそらく

 ls -l foo | awk '{print  $5}' > out.txt

他にも多くのバリエーションがあります (たとえば、cut代わりに使用するawk、またはstat代わりに使用するlsなど)。

VARシェルスクリプトまたは端末で、そのサイズを変数に割り当てることができます。

VAR=$(ls -l foo | awk '{print  $5}')

他の人が答えたようにls、単純なリダイレクトのすべての出力に満足している場合は十分です。ls -l foo > out.txt

于 2012-07-27T19:23:48.940 に答える
3

私はstat(1)直接使用します:

stat -c '%s %n' *

または再帰的に行う場合:

find /some/path -type f -printf '%s %f\n'
于 2012-07-27T19:26:12.243 に答える
1

それを行うには、ls -l> yourfile.txt を使用します。

于 2012-07-27T18:44:14.480 に答える
1

duコマンドを使用できます。

du * > file.txt

duはファイルのスペース使用量を返すため、ディレクトリ内のすべてのファイルが必要な場合は、* を使用する必要があります

例:

$ cd /path/to/directory
$ du * > file.txt

また

$ du /path/to/directory/* > /path/to/file.txt
于 2012-07-27T20:57:17.350 に答える
-1

編集:質問はリダイレクトに関するものだったので、これはかなり話題から外れていることに気付きました.

duバイトではなくブロックを表示するのが好きな理由がわかりません。

ls -l $1 | awk '{ print $5 }'個人的には、処理が多すぎると思います。適切なエラー処理を期待するのであれば無理です。

私にとって、最も簡単なオプションは、より効率的なものをコンパイルすることです。

$nano flsz.c

#include <stdio.h>

int main(int argc, char **argv) {
  if (argc > 1) {
    FILE *f = fopen(argv[1], "r");
    if (f && (fseek(f, 0, SEEK_END) == 0)) {
      int size = ftell(f);
      fclose(f);
      fprintf(stdout, "%d\n", size);
    } else {
      fprintf(stdout, "0\n");
    }
  } else {
    fprintf(stdout, "-1\n");
  }
  return 0;
}

$gcc -o /usr/bin/flsz flsz.c

$flsz flsz.c

340

$flsz /usr/bin/flsz > output.txt

$cat output.txt

8972

于 2013-10-21T00:30:05.227 に答える