Вычислите размер файлов в оболочке

Вы можете использовать momentjs для выполнения требования.

console.log(`Current time -----`, moment().fromNow())

console.log(`From device's last update time ----`, moment('2019-01-11T15:55:47.377+0000').fromNow())

Вы также можете использовать в ExtJS. Вы можете проверить здесь с работающей скрипкой Сенча .

Фрагмент кода

Ext.application({
    name: 'Fiddle',

    launch: function () {


        function randomDate(start, end) {
            return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
        }

        // Define store
        Ext.define('DataStore', {
            extend: 'Ext.data.Store',
            alias: 'store.datastore',
            pageSize: 50,

            fields: [
                'title', 'forumtitle', 'forumid', 'username', {
                    name: 'replycount',
                    type: 'int'
                }, {
                    name: 'lastpost',
                    convert: function (v, r) {
                        let date = randomDate(new Date(2018, 0, 1), new Date());
                        return moment(date).fromNow();
                    }
                },
                'lastposter', 'excerpt', 'threadid'
            ],

            remoteSort: true,
            proxy: {
                // load using script tags for cross domain, if the data in on the same domain as
                // this page, an HttpProxy would be better
                type: 'jsonp',
                url: '//www.sencha.com/forum/topics-browse-remote.php',
                reader: {
                    rootProperty: 'topics',
                    totalProperty: 'totalCount'
                },
                // sends single sort as multi parameter
                simpleSortMode: true
            }
        });

        Ext.create('Ext.grid.Panel', {
            title: 'ExtJs Forum',
            store: {
                type: 'datastore'
            },
            autoLoad: true,
            columns: [{
                text: 'Forum Title',
                dataIndex: 'forumtitle',
                flex: 1
            }, {
                text: 'Last update',
                dataIndex: 'lastpost',
                flex: 1
            }, {
                text: 'Title',
                dataIndex: 'title',
                flex: 1
            }],
            bbar: {
                xtype: 'pagingtoolbar',
                displayInfo: true
            },
            height: 450,
            renderTo: Ext.getBody()
        });
    }
});

53
задан yothenberg 3 July 2010 в 05:03
поделиться

8 ответов

Попытка:

find . -name "*.undo" -ls | awk '{total += $7} END {print total}'

В моей системе размер файла является седьмым полем в эти find -ls вывод. Если Ваш find … -ls вывод отличается, корректироваться.

В этой версии, с помощью существующей информации о каталоге (размер файла) и встроенная ls функция находки должно быть эффективным, избежав созданий процесса или файла i/o.

95
ответ дан Gilles 'SO- stop being evil' 7 November 2019 в 08:16
поделиться

Проверьте (использование диска) du команда.

-3
ответ дан CMS 7 November 2019 в 08:16
поделиться

Python является частью большинства дистрибутивов Linux.

import os
import fnmatch
size= 0
for path, dirs, files in os.walk( '.' ):
    for f in files:
        if fnmatch.fnmatch(f,'*.py'):
            fileSize= os.path.getsize( os.path.join(path,f) ) 
            print f, fileSize
            size += fileSize
print size

Длинноватый, но совершенно ясный и очень расширяемый.

5
ответ дан S.Lott 7 November 2019 в 08:16
поделиться
find -name '*.undo' -exec wc -c {} + | tail -n 1

должен дать фактическое общее количество байтов в файлах, если у Вас нет слишком многих файлов (где "слишком многие" будут действительно большим количеством, вероятно, в тысячах). Или если Вы просто хотите получить одно только число,

find -name '*.undo' -exec wc -c {} + | tail -n 1 | cut -d' ' -f 1
8
ответ дан David Z 7 November 2019 в 08:16
поделиться
du -c *pattern*

Это распечатает общее количество на последней строке вывода.

18
ответ дан Cantillon 7 November 2019 в 08:16
поделиться

С zsh можно использовать расширенный globbing, чтобы сделать:

-c **/*.undo

единицы Добсона
35
ответ дан Chris AtLee 7 November 2019 в 08:16
поделиться
find -name *.undo -print0 | du -hc --files0-from=-
22
ответ дан 7 November 2019 в 08:16
поделиться
find -name '*.undo' -print0 | du -hc --files0-from=- | tail -n 1

Собрано из вкладов gerdemb и strager. Использование du -cb должно отображать байты.

3
ответ дан 7 November 2019 в 08:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: