にどのようにそれらのコマンドを印刷する場合は、ファイルサイズ、ファイルです。

StackOverflow https://stackoverflow.com/questions/64649

質問

い課題を見つのコマンドとして

$ find . -name *.ear

でプリントアウトしたりすること:

./dir1/dir2/earFile1.ear
./dir1/dir2/earFile2.ear
./dir1/dir3/earFile1.ear

したいこと"印刷"のコマンドラインの名前とサイズ:

./dir1/dir2/earFile1.ear  5000 KB
./dir1/dir2/earFile2.ear  5400 KB
./dir1/dir3/earFile1.ear  5400 KB
役に立ちましたか?

解決

find . -name '*.ear' -exec ls -lh {} \;

のh別からjer.drab.org's"応答が返されます。時間を変換しますMB精神;)

他のヒント

を使用する必要があり-execはprintf.Printf作品のようになります:

find . -name *.ear -printf "%p %k KB\n"

-execはさらに強力に作を実行する任意のコマンドで使えた、アコースティックバージョンの"ls"または"トイレ"を印刷してのファイル名とその他の情報です。男探すの引数はprintf、できるだけでなく、より多くのfilesize.

[編集]-printfは、POSIX準はどうなっているでしょうかいサポートされておンバージョン。しかし、最も近代的なシステム用GNU見や同様の拡張版であり、良い機会となります。

このグループに参加"ボタンを使用し-lsのオプションアプリケーションを起動させ:

find . -name \*.ear -ls

を与えてくれる各エントリは通常の"ls-l"形式です。または、特定の出力すいよう、この:

find . -name \*.ear -printf "%p\t%k KB\n"

ご利用いただけませるファイルのサイズKBです。

使用gnu、こういうと考えている。できるようにするためのlibsoupおよ実ファイルはディレクトリ(タイプf)は、それぞれの版画のファイル名(%p)、タブ( )を行う関数(%k)は、接尾辞"KB"として改行( )

find . -type f -printf '%p\t%k KB\n'

場合にはprintfコマンドな形式のものにしたい利用できexec、その後コマンドを実行する毎にファイルです。使用{}のファイル名は、終了のコマンドセミコロン(;).ほとんどの貝殻、すべての文字をすべきか逃げバックスラッシュ.

こちらは簡単に解決を見出す、印刷しての"ls-lh、よろしくおねがいします大人が読める形式(kキロバイトMのためのメガバイト):

find . -type f -exec ls -lh \{\} \;

として、"wc-c"の印字文字数(バイト)のファイル:

find . -type f -exec wc -c \{\} \;
find . -name '*.ear' -exec du -h {} \;

これにより、filesizeだけではなく、すべての不必要なんですよ。

Awkで固定し、出力としての質問をお楽しみいただけます。私のSolaris10システムの見-ls印刷サイズKBどの分野で:

% find . -name '*.ear' -ls | awk '{print $2, $11}'
5400 ./dir1/dir2/earFile2.ear
5400 ./dir1/dir2/earFile3.ear
5400 ./dir1/dir2/earFile1.ear

その他、利用-exec ls-lhを抽出センサから出力されます。再びSolaris10:

% find . -name '*.ear' -exec ls -lh {} \; | awk '{print $5, $9}'
5.3M ./dir1/dir2/earFile2.ear
5.3M ./dir1/dir2/earFile3.ear
5.3M ./dir1/dir2/earFile1.ear

なぜ使用しないで du-a ?E.g.

find . -name "*.ear" -exec du -a {} \;

作品Mac

悩んだことはこのMac OS Xのコマンドに対応しておりません -printf.

解決策を見て、確かに依存してのグループのすべてのファイルの"スタッフた---

ls -l -R | sed 's/\(.*\)staff *\([0-9]*\)..............\(.*\)/\2 \3/'

この分割のls長出力へトークン

  1. もの前にスタッフ
  2. ファイルのサイズ
  3. ファイルのファイル名

そして出力トークン2、3、出力バイト数、そのファイル名

8071 sections.php
54681 services.php
37961 style.css
13260 thumb.php
70951 workshops.php

このはんだ、フォーマット(すなわちファイル名やサイズのその後):

find . -type f -iname "*.ear" -exec du -ah {} \; | awk '{print $2"\t", $1}'

サンプル出力を使用しましたが、 -iname "*.php" こ):

./plugins/bat/class.bat.inc.php  20K
./plugins/quotas/class.quotas.inc.php    8.0K
./plugins/dmraid/class.dmraid.inc.php    8.0K
./plugins/updatenotifier/class.updatenotifier.inc.php    4.0K
./index.php      4.0K
./config.php     12K
./includes/mb/class.hwsensors.inc.php    8.0K

ばしてみてください:

find. -name *.ear -exec du {} \;

このサイズをバイトです。にduコマンドでも受け付けるパラメータ-k KBおよびmのための応募を推奨いたします。までの出力のような

5000  ./dir1/dir2/earFile1.ear
5400  ./dir1/dir2/earFile2.ear
5400  ./dir1/dir3/earFile1.ear
find . -name "*.ear" | xargs ls -sh
$ find . -name "test*" -exec du -sh {} \;
4.0K    ./test1
0       ./test2
0       ./test3
0       ./test4
$

Scripter世界の基準

試しに、以下のコマンド:

GNU stat:

find . -type f -name *.ear -exec stat -c "%n %s" {} ';'

BSD stat:

find . -type f -name *.ear -exec stat -f "%N %z" {} ';'

しかし stat な標準で du または wc きよりよいアプローチ:

find . -type f -name *.ear -exec sh -c 'echo "{} $(wc -c < {})"' ';'
find . -name "*.ear" -exec ls -l {} \;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top