1

すべてのjavaファイルとxmlファイルをダンプする次のコマンドがあります。

find . -name '*.*' -print -ls

次の出力が得られます。

./auth-jaas/pom.xml
562949954141667    2 ----------   1 John ????????     1282 Feb 14  2011 ./auth-jaas/pom.xml

次のように小さくする方法はありますか?

1282 Feb 14  2011 ./auth-jaas/pom.xml

私はファイルサイズとタイムスタンプにのみ興味があります。

4

4 に答える 4

4

あなたが求めているのは次のようなものだと思います:

find . -name '*.*' -exec stat -f "%10z %Sm %N" {} +

ディレクトリの 1 つの出力の一部としてこれを取得しました。

   534 Mar  2 20:17:16 2013 ./so.6964747
   835 Mar  2 20:17:16 2013 ./so.6965001
 25048 Jun 25 21:29:46 2012 ./so.8854855.sql
  7710 Feb 13 07:17:01 2013 ./sortAtt.c
  1565 Sep  4 19:15:30 2010 ./strandsort.c
  7224 Sep 22 13:42:17 2012 ./streplace.c
  3033 Jan 28 23:16:46 2013 ./substr.c
   139 Mar 20 12:48:24 2013 ./sum.sh
  6833 Sep 21 07:57:53 2012 ./timezeromoves.c
   614 Feb 21 09:23:00 2013 ./travAsm.c
   347 Feb 21 09:23:00 2013 ./traverse.c
  1277 Jul 26 09:30:12 2012 ./uint128.c
   793 Aug 19 00:47:48 2012 ./unwrap.c
  1906 Jul 28 08:41:22 2012 ./xxx.sql
  1904 Sep 22 21:30:09 2011 ./yyy.sql

オプションを読むと、「変更時刻の文字列形式」から時刻を削除する方法がわかる場合があります ( %Sm)。

記録のために、これは/usr/bin/statGNU ではなく Mac OS X 10.7.5 で使用していましstatた。そこで利用できるものを精査する必要があります。

find . -name '*.*' -exec /usr/gnu/bin/stat --format "%s   %y   %N"

出力の同じ部分は次のとおりです。

534   2013-03-02 20:17:16.000000000 -0800   ./so.6964747
835   2013-03-02 20:17:16.000000000 -0800   ./so.6965001
25048   2012-06-25 21:29:46.000000000 -0700   ./so.8854855.sql
7710   2013-02-13 07:17:01.000000000 -0800   ./sortAtt.c
1565   2010-09-04 19:15:30.000000000 -0700   ./strandsort.c
7224   2012-09-22 13:42:17.000000000 -0700   ./streplace.c
3033   2013-01-28 23:16:46.000000000 -0800   ./substr.c
139   2013-03-20 12:48:24.000000000 -0700   ./sum.sh
6833   2012-09-21 07:57:53.000000000 -0700   ./timezeromoves.c
614   2013-02-21 09:23:00.000000000 -0800   ./travAsm.c
347   2013-02-21 09:23:00.000000000 -0800   ./traverse.c
1277   2012-07-26 09:30:12.000000000 -0700   ./uint128.c
793   2012-08-19 00:47:48.000000000 -0700   ./unwrap.c
1906   2012-07-28 08:41:22.000000000 -0700   ./xxx.sql
1904   2011-09-22 21:30:09.000000000 -0700   ./yyy.sql
于 2013-03-20T21:15:38.307 に答える
3

コマンドにLinux スタイルがある場合は-printf、アクセス時間、mod-time (およびより具体的なフォーマットの大文字バリアント)、およびバイト単位のファイル サイズに使用します。find%a%t%s

または、 から出力をパイプし-lsますcut

于 2013-03-20T21:12:41.987 に答える
2

du代わりに使用してください:

$ du --time file
4   2013-03-20 19:49    file

find:

$ find . -name 'file' -exec du --time {} +
于 2013-03-20T21:13:04.807 に答える
0

通常、私はカットと言いますが、それらがタブ区切りなのかスペース区切りなのかわかりません:

find . -name '*.*' -print -ls |awk '{$0=substr($0,index($0,FS)+4);printf $0}'
于 2013-03-20T21:22:18.293 に答える