Запишите имя корневого каталога путь к файлу его расширение д архив
Обновлено: 21.11.2024
Эта команда создает резервный архив, содержащий все файлы, найденные при рекурсивном обходе по всем указанным путям. Пути добавляются в архив по мере их ввода, это означает, что если нужны относительные пути, команду нужно запускать из правильного каталога.
Если указать «-» в качестве пути, borg прочитает данные из стандартного ввода и создаст файл «stdin» в созданном архиве из этих данных. Однако в некоторых случаях более уместно использовать –content-from-command. Подробности см. в разделе Чтение со стандартного ввода ниже.
Архив почти не будет занимать место на диске для файлов или частей файлов, которые уже были сохранены в других архивах.
В названии архива можно использовать следующие заполнители: , , , и некоторые другие.
Скорость резервного копирования увеличивается за счет отказа от повторной обработки файлов, которые уже являются частью существующих архивов и не были изменены. Обнаружение неизмененных файлов выполняется путем сравнения нескольких значений метаданных файла с предыдущими значениями, хранящимися в кэше файлов.
Это сравнение может работать в разных режимах, заданных параметром --files-cache :
- ctime,size,inode (по умолчанию)
- mtime,size,inode (поведение по умолчанию для версий borg старше 1.1.0rc4)
- ctime,size (игнорировать номер инода)
- mtime,size (игнорировать номер инода)
- rechunk,ctime (все файлы считаются измененными - rechunk, cache ctime)
- rechunk,mtime (все файлы считаются измененными - rechunk, cache mtime)
- отключено (отключить кеширование файлов, все файлы считаются измененными - перекомпоновать)
номер индексного узла: более безопасный, но часто нестабильный в сетевых файловых системах
Обычно при обнаружении изменений файлов учитывается информация об индексных дескрипторах, чтобы повысить надежность обнаружения изменений файлов. Это проблематично для файлов, расположенных на sshfs и аналогичных сетевых файловых системах, которые не предоставляют стабильные номера инодов, такие файлы всегда будут считаться измененными. В этом случае вы можете использовать режимы без индексного дескриптора для повышения производительности, но надежность обнаружения изменений может снизиться.
ctime vs. mtime: безопасность vs скорость
- ctime — это довольно безопасный способ обнаружения изменений в файле (метаданные и содержимое), поскольку его нельзя установить из пользовательского пространства. Но изменение только метаданных уже обновит ctime, поэтому может быть ненужное разбиение/хэширование даже без изменений содержимого. Некоторые файловые системы не поддерживают ctime (время изменения). Например. выполнение chown или chmod для файла изменит его ctime.
- mtime обычно работает и обновляется только в том случае, если содержимое файла было изменено. Но mtime можно произвольно установить из пользовательского пространства, например. чтобы вернуть mtime к тому же значению, которое было до изменения содержимого. Это может использоваться как злонамеренно, так и из лучших побуждений, но в обоих случаях режимы кэширования на основе mtime могут быть проблематичными.
Точки монтирования файловых систем или моментальных снимков файловой системы должны быть одинаковыми для каждого создания нового архива, чтобы обеспечить быструю работу. Это связано с тем, что кэш файлов, который используется для определения измененных файлов, быстро использует абсолютные имена файлов. Если это невозможно, рассмотрите возможность создания привязки к стабильному местоположению.
Опция --progress показывает (слева направо) Исходный, Сжатый и Дедуплицированный (O, C и D соответственно), затем Количество файлов (N), обработанных на данный момент, а затем текущий обрабатываемый путь.< /p>
При использовании --stats вы получите некоторую статистику о том, сколько данных было добавлено — дедуплицированный размер «Этот архив» наиболее интересен, так как именно на него будет расти ваш репозиторий. Обратите внимание, что статистика «Все архивы» относится к состоянию после создания. Кроме того, параметры --stats и --dry-run являются взаимоисключающими, поскольку данные фактически не сжимаются и не дедуплицируются во время пробного запуска.
Дополнительную информацию о шаблонах включения/исключения см. в выводе команды borg help pattern.
Дополнительную справку по заполнителям см. в выводе команды borg help placeholders.
Шаблоны --exclude не похожи на tar. В tar --exclude .bundler/gems исключит foo/.bundler/gems. В борге этого не будет, вам нужно использовать --exclude ‘*/.bundler/gems’, чтобы получить тот же эффект.
Помимо использования шаблонов --exclude, можно использовать --exclude-if-present, чтобы указать имя объекта файловой системы (например, имя файла или папки), которое, если оно содержится в другой папке, предотвратит содержащую папку от резервного копирования. По умолчанию содержащаяся папка и все ее содержимое будут исключены из резервной копии. Однако, если вы хотите включить в резервную копию только объекты, указанные --exclude-if-present, и не включать какое-либо другое содержимое содержащей папки, это можно включить с помощью параметра --keep-exclude-tags. .
Опция -x или --one-file-system исключает каталоги, являющиеся точками монтирования (и все, что в них находится). Он обнаруживает точки монтирования, сравнивая номер устройства из вывода stat() каталога и его родительского каталога. В частности, он исключает каталоги, для которых stat() сообщает номер устройства, отличный от номера устройства их родителя. Имейте в виду, что в Linux (и, возможно, где-либо еще) есть каталоги с номером устройства, отличным от их родителя, которые ядро не считает точкой монтирования, а также наоборот. Примерами являются связывание монтирования (возможно, с одним и тем же номером устройства, но всегда с точкой монтирования) и ВСЕ подтома btrfs (номер устройства отличается от родительского, но не обязательно точка монтирования). Поэтому при использовании --one-file-system следует вдвойне убедиться, что резервное копирование работает должным образом, особенно при использовании btrfs. Это еще более важно, если макет btrfs был создан кем-то другим, например. установщик дистрибутива.
Флаги элемента¶
--list выводит список всех файлов, каталогов и других элементов файловой системы, которые он рассмотрел (независимо от того, было ли в них изменено содержимое или нет). Перед каждым элементом ставится однобуквенный флаг, указывающий тип и/или статус элемента.
Если вас интересует только подмножество этого вывода, вы можете указать, например. --filter=AME, и будут отображаться только обычные файлы со статусом A, M или E (см. ниже).
Символ верхнего регистра обозначает статус обычного файла относительно кеша «файлов» (не относительно репозитория — это проблема, если кеш файлов не используется). Метаданные сохраняются в любом случае, а для «A» и «M» также сохраняются новые фрагменты данных. Для «U» все фрагменты данных относятся к уже существующим фрагментам.
- «A» = обычный файл, добавленный (см. также «Я вижу статус «A» (добавленный) для неизмененного файла!? в разделе часто задаваемых вопросов)
- 'M' = обычный файл, измененный
- «U» = обычный файл без изменений
- «C» = обычный файл, он изменился, пока мы создавали его резервную копию.
- 'E' = обычный файл, произошла ошибка при доступе/чтении этого файла
Символ нижнего регистра означает тип файла, отличный от обычного файла, borg обычно просто хранит свои метаданные:
- ‘d’ = каталог
- ‘b’ = заблокировать устройство
- 'c' = символьное устройство
- 'h' = обычный файл, жесткая ссылка (на уже видимые индексные дескрипторы)
- ‘s’ = символическая ссылка
- 'f' = fifo
Другие используемые флаги включают:
- 'i' = данные резервной копии были прочитаны из стандартного ввода (stdin)
- '-' = пробный запуск, элемент не заархивирован
- ‘x’ = исключено, элемент не заархивирован
- '?' = отсутствует код состояния (если вы видите это, отправьте отчет об ошибке!)
Чтение со стандартного ввода¶
Существует два метода чтения из стандартного ввода. Либо укажите - как путь и канал прямо к боргу:
Или используйте --content-from-command, чтобы Борг управлял выполнением команды и конвейером. В этом случае первый аргумент PATH интерпретируется как команда для выполнения, а все последующие аргументы рассматриваются как аргументы команды:
-- используется для того, чтобы --id и --stdout не считались аргументами для borg, а скорее для backup-vm .
Разница между этими двумя подходами заключается в том, что при передаче в borg создается архив, даже если команда при передаче в borg завершается с ошибкой. В этом случае можно получить резервную копию усеченного вывода. Напротив, при использовании --content-from-command borg гарантированно завершится ошибкой без создания архива в случае сбоя команды. Команда считается неудачной, если она вернула ненулевой код выхода.
Чтение со стандартного ввода дает просто поток данных без связанных с ним файловых метаданных, а кеш файлов вообще не нужен. Поэтому безопасно отключить его с помощью --files-cache disabled и немного ускорить создание резервной копии.
По умолчанию содержимое, прочитанное со стандартного ввода, сохраняется в файле с именем «stdin». Используйте --stdin-name, чтобы изменить имя.
Получает элементы и дочерние элементы в одном или нескольких указанных местоположениях.
Синтаксис
Описание
Командлет Get-ChildItem получает элементы в одном или нескольких указанных расположениях. Если элемент является контейнером, он получает элементы внутри контейнера, называемые дочерними элементами. Вы можете использовать параметр Recurse, чтобы получить элементы во всех дочерних контейнерах, и использовать параметр Depth, чтобы ограничить количество уровней для рекурсии.
Get-ChildItem не отображает пустые каталоги. Если команда Get-ChildItem включает параметры Depth или Recurse, пустые каталоги не включаются в выходные данные.
Расположения предоставляются Get-ChildItem поставщиками PowerShell. Местоположение может быть каталогом файловой системы, кустом реестра или хранилищем сертификатов. Дополнительные сведения см. в разделе about_Providers.
Примеры
Пример 1. Получение дочерних элементов из каталога файловой системы
В этом примере дочерние элементы извлекаются из каталога файловой системы.Отображаются имена файлов и подкаталогов. Для пустых местоположений команда не возвращает никаких выходных данных и возвращается к командной строке PowerShell.
Командлет Get-ChildItem использует параметр Path для указания каталога C:\Test . Командлет Get-ChildItem отображает файлы и каталоги в консоли PowerShell.
По умолчанию Get-ChildItem перечисляет режим (атрибуты), LastWriteTime, размер файла (длина) и имя элемента. Буквы в свойстве Mode можно интерпретировать следующим образом:
- л (ссылка)
- d (каталог)
- а (архив)
- r (только для чтения)
- ч (скрыто)
- s (система).
Дополнительную информацию о флагах режима см. в разделе about_Filesystem_Provider.
Пример 2. Получение имен дочерних элементов в каталоге
В этом примере перечислены только имена элементов в каталоге.
Командлет Get-ChildItem использует параметр Path для указания каталога C:\Test . Параметр Name возвращает только имена файлов или каталогов по указанному пути.
Пример 3. Получение дочерних элементов в текущем каталоге и подкаталогах
В этом примере отображаются файлы .txt, расположенные в текущем каталоге и его подкаталогах.
Командлет Get-ChildItem использует параметр Path для указания C:\Test\*.txt . Путь использует подстановочный знак звездочки ( * ) для указания всех файлов с расширением имени файла .txt . Параметр Recurse ищет в каталоге Path его подкаталоги, как показано в заголовках Directory:. Параметр Force отображает скрытые файлы, такие как hiddenfile.txt, которые имеют режим h.
Пример 4. Получение дочерних элементов с помощью параметра Include
В этом примере командлет Get-ChildItem использует параметр Include для поиска определенных элементов в каталоге, указанном параметром Path.
Командлет Get-ChildItem использует параметр Path для указания каталога C:\Test. Параметр Path включает завершающую звездочку ( * ) для указания содержимого каталога. Параметр Include использует подстановочный знак звездочки ( * ) для указания всех файлов с расширением имени файла .txt.
При использовании параметра Include параметру Path требуется завершающая звездочка ( * ) для указания содержимого каталога. Например, -Путь C:\Test\* .
- Если в команду добавлен параметр Recurse, завершающая звездочка ( * ) в параметре Path необязательна. Параметр Recurse получает элементы из каталога Path и его подкаталогов. Например, -Путь C:\Test\ -Recurse -Include *.txt
- Если в параметре Path не указана завершающая звездочка ( * ), команда не возвращает никаких выходных данных и возвращается к командной строке PowerShell. Например, -Путь C:\Test\ .
Пример 5. Получение дочерних элементов с помощью параметра Exclude
Вывод примера показывает содержимое каталога C:\Test\Logs. Результат является ссылкой для других команд, использующих параметры Exclude и Recurse.
Командлет Get-ChildItem использует параметр Path для указания каталога C:\Test\Logs . Параметр Exclude использует подстановочный знак звездочки ( * ), чтобы указать, что любые файлы или каталоги, начинающиеся с A или a, исключаются из выходных данных.
При использовании параметра Exclude звездочка ( * ) в конце параметра Path необязательна. Например, -Path C:\Test\Logs или -Path C:\Test\Logs\* .
- Если в параметре "Путь" отсутствует завершающая звездочка ( * ), отображается содержимое параметра "Путь". Исключениями являются имена файлов или подкаталогов, соответствующие значению параметра Exclude.
- Если в параметре "Путь" указана завершающая звездочка ( * ), команда рекурсивно переходит в подкаталоги параметра "Путь". Исключениями являются имена файлов или подкаталогов, соответствующие значению параметра Exclude.
- Если в команду добавлен параметр Recurse, выходные данные рекурсии будут одинаковыми независимо от того, содержит ли параметр Path завершающую звездочку ( * ).
Пример 6. Получение ключей реестра из куста реестра
В этом примере все ключи реестра извлекаются из HKEY_LOCAL_MACHINE\HARDWARE .
Командлет Get-ChildItem использует параметр Path для указания раздела реестра HKLM:\HARDWARE . Путь к кусту и ключи реестра верхнего уровня отображаются в консоли PowerShell.
Первая команда показывает содержимое раздела реестра HKLM:\HARDWARE. Параметр Exclude указывает командлету Get-ChildItem не возвращать подразделы, начинающиеся с D* . В настоящее время параметр Exclude работает только с подразделами, но не со свойствами элемента.
Пример 7. Получение всех сертификатов с правом подписи кода
В этом примере получаются все сертификаты на диске PowerShell Cert: с полномочиями на подпись кода.
Командлет Get-ChildItem использует параметр Path для указания поставщика Cert:. Параметр Recurse выполняет поиск в каталоге, указанном параметром Path, и его подкаталогах.Параметр CodeSigningCert получает только сертификаты с полномочиями на подпись кода.
Дополнительную информацию о поставщике сертификатов и диске Cert: см. в разделе about_Certificate_Provider.
Пример 8. Получение элементов с помощью параметра "Глубина"
В этом примере отображаются элементы в каталоге и его подкаталогах. Параметр Depth определяет количество уровней подкаталогов, которые необходимо включить в рекурсию. Пустые каталоги исключаются из вывода.
Командлет Get-ChildItem использует параметр Path для указания C:\Parent. Параметр Depth задает два уровня рекурсии. Командлет Get-ChildItem отображает содержимое каталога, указанного параметром Path, и два уровня подкаталогов.
Пример 9. Получение информации о жестких ссылках
В PowerShell 6.2 добавлено альтернативное представление для получения информации о жестких ссылках.
Пример 10. Вывод для операционных систем, отличных от Windows
В PowerShell 7.1 в системах Unix Get-ChildItem обеспечивает выходные данные, подобные Unix:
- UnixMode — это права доступа к файлам, представленные в системе Unix.
- Пользователь является владельцем файла
- Группа является владельцем группы
- Размер – это размер файла или каталога, представленный в системе Unix.
Эта функция была перемещена из экспериментальной в основную в PowerShell 7.1.
Пример 11. Получение цели ссылки для точки соединения
Команда dir в командной оболочке Windows показывает целевое расположение точки соединения файловой системы. В PowerShell эта информация доступна из свойства LinkTarget объекта файловой системы, возвращаемого командлетом Get-ChildItem, и отображается в выходных данных по умолчанию.
Параметры
Получает файлы и папки с указанными атрибутами. Этот параметр поддерживает все атрибуты и позволяет указывать сложные комбинации атрибутов.
Например, чтобы получить зашифрованные или сжатые несистемные файлы (не каталоги), введите:
Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed
Чтобы найти файлы и папки с часто используемыми атрибутами, используйте параметр Атрибуты. Или параметры Каталог, Файл, Скрытый, Только для чтения и Система.
Параметр Attributes поддерживает следующие свойства:
Описание этих атрибутов см. в перечислении FileAttributes.
Чтобы объединить атрибуты, используйте следующие операторы:
Не используйте пробелы между оператором и его атрибутом. Пробелы допускаются после запятых.
Для общих атрибутов используйте следующие сокращения:
- D (Каталог)
- H (скрыто)
- R (только чтение)
- S (Система)
Этот параметр был добавлен в PowerShell 5.0 и позволяет управлять глубиной рекурсии. По умолчанию Get-ChildItem отображает содержимое родительского каталога. Параметр Depth определяет количество уровней подкаталогов, включенных в рекурсию, и отображает содержимое.
Например, глубина 2 включает каталог параметра "Путь", первый уровень подкаталогов и второй уровень подкаталогов. По умолчанию в вывод включаются имена каталогов и файлов.
Тип: | UInt32 |
Позиция: | Имя |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False | tr>
Допускать подстановочные знаки: | False |
Чтобы получить список каталогов, используйте параметр "Каталог" или параметр "Атрибуты" со свойством "Каталог". Вы можете использовать параметр Recurse с каталогом.
Тип: | SwitchParameter |
Псевдонимы: | ad |
Позиция: | Имя |
Значение по умолчанию: | Нет | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Тип: | Строка [ ] |
Позиция: | Название td> |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False< /td> |
Допускать подстановочные знаки: | True |
Чтобы получить список файлов, используйте параметр File. Вы можете использовать параметр Recurse с файлом.
Тип: | SwitchParameter |
Псевдонимы: | af |
Позиция: | Имя |
Значение по умолчанию: | Нет | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Тип: | Строка |
Позиция: | 1 |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | True |
По умолчанию командлет Get-ChildItem отображает символические ссылки на каталоги, найденные во время рекурсии, но не выполняет рекурсию в них. Используйте параметр FollowSymlink для поиска каталогов, предназначенных для этих символических ссылок. FollowSymlink — это динамический параметр, который поддерживается только поставщиком файловой системы.
Этот параметр появился в PowerShell 6.0.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Позволяет командлету получать элементы, к которым пользователь иначе не может получить доступ, например скрытые или системные файлы. Параметр Force не отменяет ограничения безопасности. Реализация варьируется среди поставщиков. Дополнительные сведения см. в разделе about_Providers.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | False |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Чтобы получить только скрытые элементы, используйте параметр Hidden или параметр Attributes со свойством Hidden. По умолчанию Get-ChildItem не отображает скрытые элементы. Используйте параметр Force, чтобы получить скрытые элементы.
Тип: | SwitchParameter |
Псевдонимы: | ah, h td> |
Позиция: | Имя |
Значение по умолчанию: | Нет |
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False< /td> |
Указывает массив из одного или нескольких строковых шаблонов, которые должны сопоставляться при получении командлетом дочерних элементов. Любой соответствующий элемент включается в вывод. Введите элемент пути или шаблон, например "*.txt" . Подстановочные знаки разрешены. Параметр Include действует, только если команда включает содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое каталога C:\Windows.
Параметры Include и Exclude можно использовать вместе. Однако исключения применяются после включений, что может повлиять на конечный результат.
Тип: | Строка [ ] |
Позиция: | Название td> |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False< /td> |
Допускать подстановочные знаки: | True |
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одиночные кавычки сообщают PowerShell, что никакие символы не должны интерпретироваться как управляющие последовательности.
Тип: | String [ ] |
Псевдонимы: | PSPath, LP |
Позиция: | Имя |
Значение по умолчанию: | Нет< /td> |
Принимать ввод конвейера: | True |
Допускать подстановочные знаки: | Ложь |
Получает только названия элементов в местоположении. Результатом является строковый объект, который можно отправить по конвейеру другим командам. Подстановочные знаки разрешены.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | True |
Указывает путь к одному или нескольким местоположениям. Подстановочные знаки принимаются. Расположение по умолчанию — текущий каталог ( . ).
Тип: | Строка [ ] |
Позиция: | 0 td> |
Значение по умолчанию: | Текущий каталог |
Принять ввод конвейера: | True |
Допускать подстановочные знаки: | Истина |
Чтобы получить элементы только для чтения, используйте параметр ReadOnly или свойство ReadOnly параметра Attributes.
Тип: | SwitchParameter |
Псевдонимы: | ar |
Позиция: | Имя |
Значение по умолчанию: | Нет | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Тип: | SwitchParameter |
Псевдонимы: | s |
Позиция: | Имя |
Значение по умолчанию: | False | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Тип: | SwitchParameter |
Псевдонимы: | as |
Позиция: | Имя |
Значение по умолчанию: | Нет | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |