Сценарий оболочки — Получает все файлы, измененные после <даты>

enter image description here

Option Explicit

Sub test()
    Debug.Print "Var 1 : "; CountRangeIf("not(A3="""")", Range("E3:H3"))

    Dim testCriteria As Boolean
    testCriteria = Not (Range("A3").Value = "")
    Debug.Print "Var 2 : "; CountRangeIf_Var2(testCriteria, Range("E3:H3"))
End Sub

Public Function CountRangeIf(IfCriteriaString As String, CountRange As Range) As Variant
    Dim resultCriteria As Boolean
    CountRangeIf = ""           ' Result = "" if Criteria is false
    resultCriteria = Evaluate(IfCriteriaString)
    With Application.WorksheetFunction
        If resultCriteria Then
            CountRangeIf = .CountA(CountRange)
        End If
    End With
End Function

Public Function CountRangeIf_Var2(IfCriteria As Boolean, CountRange As Range) As Variant
    CountRangeIf_Var2 = ""           ' Result = "" if Criteria is false
    With Application.WorksheetFunction
        If IfCriteria Then
            CountRangeIf_Var2 = .CountA(CountRange)
        End If
    End With
End Function

132
задан Jonathan Leffler 29 August 2015 в 16:43
поделиться

6 ответов

просто:

find . -mtime -1 | xargs tar --no-recursion -czf myfile.tgz

где найти. -mtime -1 выберет все файлы (рекурсивно) в текущем каталоге, измененные накануне. вы можете использовать дроби, например:

find . -mtime -1.5 | xargs tar --no-recursion -czf myfile.tgz
133
ответ дан 24 November 2019 в 00:09
поделиться

Это будет работать для некоторого количества файлов. Вы хотите включить «-print0» и «xargs -0» на случай, если в любом из путей есть пробелы. В этом примере выполняется поиск файлов, измененных за последние 7 дней. Чтобы найти те, которые были изменены за последние 7 дней, используйте «+7».

find . -mtime -7 -print0 | xargs -0 tar -cjf /foo/archive.tar.bz2

Как эта страница предупреждает, xargs может вызвать многократное выполнение команды tar, если есть много аргументов, а флаг «-c» может вызвать проблемы. В этом случае вам может потребоваться следующее:

find . -mtime -7 -print0 | xargs -0 tar -rf /foo/archive.tar

Вы не можете обновить заархивированный tar-архив с помощью tar, поэтому вам придется использовать bzip2 или gzip на втором этапе.

17
ответ дан 24 November 2019 в 00:09
поделиться

Это должно показать все файлы, измененные за последние 7 дней.

find . -type f -mtime -7 -print

Вставьте их в tar / zip, и все будет в порядке.

12
ответ дан 24 November 2019 в 00:09
поделиться

ну под linux попробуйте прочитать справочную страницу команды find

man find

что-то вроде этого должно

 find . -type f -mtime -7 -print -exec cat {} \; | tar cf - | gzip -9

и оно у вас есть

3
ответ дан 24 November 2019 в 00:09
поделиться

Если у вас есть GNU find , то есть множество подходящих опций. Единственная загвоздка в том, что интерфейс к ним меньше звездного:

  • -mmin n (время модификации в минутах)
  • -mtime n (время модификации в днях)
  • -newer file (время модификации новее, чем время модификации файла)
  • -daystart (настроить время начала с текущего времени на начало дня)
  • Плюс альтернативы для времени доступа и времени «изменить» или «создать» .

Самая сложная часть - это определение количества минут с момента времени.

Один из вариантов, который стоит рассмотреть: используйте коснитесь , чтобы создать файл с требуемой отметкой времени изменения; затем используйте find с -newer .

touch -t 200901031231.43 /tmp/wotsit
find . -newer /tmp/wotsit -print
rm -f /tmp/wotsit

Это ищет файлы новее, чем 2009-01-03T12: 31: 43. Очевидно, что в сценарии / tmp / wotsit будет именем с PID или другим значением, чтобы сделать его уникальным; и будет ловушка , чтобы гарантировать, что он будет удален, даже если пользователь прерывает, и так далее и так далее.

91
ответ дан 24 November 2019 в 00:09
поделиться

Вы можете получить список файлов, последний раз измененных позже, чем x дней назад, с помощью:

find . -mtime -x

Затем вам просто нужно заархивировать и заархивировать файлы в итоговом списке, например:

tar czvf mytarfile.tgz `find . -mtime -30`

для всех файлы, измененные за последний месяц.

3
ответ дан 24 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

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