Файл task5 был сохранен в каком-то каталоге после того, как в этом каталоге был создан подкаталог

Обновлено: 04.07.2024

Некоторая информация относится к предварительной версии продукта, которая может быть существенно изменена до ее выпуска. Microsoft не дает никаких явных или подразумеваемых гарантий в отношении представленной здесь информации.

Предоставляет статические методы для создания, перемещения и перечисления каталогов и подкаталогов. Этот класс не может быть унаследован.

Примеры

В следующем примере показано, как извлечь все текстовые файлы из каталога и переместить их в новый каталог. После перемещения файлы больше не существуют в исходном каталоге.

В следующем примере показано, как использовать метод EnumerateFiles для извлечения коллекции текстовых файлов из каталога, а затем использовать эту коллекцию в запросе для поиска всех строк, содержащих «Example».

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

Примечания

Используйте класс Directory для типичных операций, таких как копирование, перемещение, переименование, создание и удаление каталогов.

Чтобы создать каталог, используйте один из методов CreateDirectory.

Чтобы удалить каталог, используйте один из методов Delete.

Чтобы получить или задать текущий каталог для приложения, используйте метод GetCurrentDirectory или SetCurrentDirectory.

Для управления данными DateTime, связанными с созданием, доступом и записью каталога, используйте такие методы, как SetLastAccessTime и SetCreationTime.

Статические методы класса Directory выполняют проверки безопасности для всех методов. Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования вместо него соответствующего метода экземпляра DirectoryInfo, поскольку проверка безопасности не всегда будет необходима.

Если вы выполняете только одно действие, связанное с каталогом, возможно, более эффективно использовать статический метод каталога, а не соответствующий метод экземпляра DirectoryInfo. Для большинства методов каталога требуется путь к каталогу, которым вы управляете.

В элементах, которые принимают строковый параметр пути, этот путь должен быть правильно сформирован, иначе возникнет исключение. Например, если путь указан полностью, но начинается с пробела ("c:\temp"), строка пути не обрезается, поэтому путь считается неправильным, и возникает исключение. Кроме того, путь или комбинация путей не могут быть полностью определены дважды. Например, «c:\temp c:\windows» также вызывает исключение. Убедитесь, что ваши пути правильно сформированы при использовании методов, которые принимают строку пути. Дополнительные сведения см. в разделе Путь.

В элементах, принимающих путь, путь может относиться к файлу или каталогу. Вы можете использовать полный путь, относительный путь или путь универсального соглашения об именах (UNC) для имени сервера и общего ресурса. Например, допустимы все следующие пути:

По умолчанию полный доступ для чтения/записи к новым каталогам предоставляется всем пользователям. Однако приложение должно иметь правильную защиту для доступа к существующим каталогам.

Чтобы запросить разрешения для каталога и всех его подкаталогов, завершите строку пути символом-разделителем каталогов. (Например, «C:\Temp\» предоставляет доступ к C:\Temp\ и всем его подкаталогам.) Чтобы запрашивать разрешения только для определенного каталога, завершите строку пути точкой. (Например, "C:\Temp\." предоставляет доступ только к C:\Temp\, но не к его подкаталогам.)

В элементах, принимающих параметр searchPattern, строка поиска может представлять собой любую комбинацию буквенных символов и двух подстановочных знаков; * а также ?. Этот параметр не распознает регулярные выражения. Дополнительные сведения см. в описании метода EnumerateDirectories(String, String) или любого другого метода, использующего параметр searchPattern.

Список общих задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

Directory и DirectoryInfo не поддерживаются для использования в приложениях Магазина Windows. Сведения о том, как получить доступ к файлам и папкам в приложениях Магазина Windows, см. в разделе Доступ к данным и файлам (приложения Магазина Windows).

Методы

Создает все каталоги и подкаталоги по указанному пути, если они еще не существуют.

Создает все каталоги по указанному пути, если они еще не существуют, применяя указанную безопасность Windows.

Создает символическую ссылку каталога, идентифицируемую по пути, который указывает на pathToTarget .

Удаляет пустой каталог по указанному пути.

Удаляет указанный каталог и, если указано, любые подкаталоги и файлы в каталоге.

Возвращает перечисляемую коллекцию полных имен каталогов по указанному пути.

Возвращает перечисляемую коллекцию полных имен каталогов, соответствующих шаблону поиска по указанному пути.

Возвращает перечисляемую коллекцию полных имен каталогов, соответствующих шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.

Возвращает перечисляемую коллекцию полных имен каталогов, соответствующих шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.

Возвращает перечисляемую коллекцию полных имен файлов по указанному пути.

Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути.

Возвращает перечисляемую коллекцию полных имен файлов, которые соответствуют шаблону поиска и параметрам перечисления в указанном пути, и, при необходимости, выполняет поиск в подкаталогах.

Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.

Возвращает перечисляемую коллекцию имен файлов и имен каталогов по указанному пути.

Возвращает перечисляемую коллекцию имен файлов и имен каталогов, которые соответствуют шаблону поиска по указанному пути.

Возвращает перечисляемую коллекцию имен файлов и имен каталогов, которые соответствуют шаблону поиска и параметрам перечисления по указанному пути.

Возвращает перечисляемую коллекцию имен файлов и имен каталогов, которые соответствуют шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.

Определяет, относится ли данный путь к существующему каталогу на диске.

Получает объект DirectorySecurity, который инкапсулирует записи списка управления доступом (ACL) для указанного каталога.

Получает объект DirectorySecurity, который инкапсулирует записи списка управления доступом (ACL) указанного типа для указанного каталога.

Получает дату и время создания каталога.

Получает дату и время создания каталога в формате всемирного координированного времени (UTC).

Получает текущий рабочий каталог приложения.

Возвращает имена подкаталогов (включая их пути) в указанном каталоге.

Возвращает имена подкаталогов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге.

Возвращает имена подкаталогов (включая их пути), которые соответствуют указанному шаблону поиска и параметрам перечисления в указанном каталоге.

Возвращает имена подкаталогов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге, и при необходимости выполняет поиск в подкаталогах.

Возвращает информацию о томе, корневую информацию или и то, и другое для указанного пути.

Возвращает имена файлов (включая их пути) в указанном каталоге.

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

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

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

Возвращает имена всех файлов и подкаталогов по указанному пути.

Возвращает массив имен файлов и имен каталогов, соответствующих шаблону поиска по указанному пути.

Возвращает массив имен файлов и имен каталогов, соответствующих шаблону поиска и параметрам перечисления по указанному пути.

Возвращает массив всех имен файлов и имен каталогов, соответствующих шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.

Возвращает дату и время последнего обращения к указанному файлу или каталогу.

Возвращает дату и время в формате всемирного координированного времени (UTC) последнего обращения к указанному файлу или каталогу.

Возвращает дату и время последней записи указанного файла или каталога.

Возвращает дату и время в формате всемирного координированного времени (UTC), когда указанный файл или каталог были в последний раз записаны.

Получает имена логических дисков на этом компьютере в формате ":\".

Получает родительский каталог указанного пути, включая как абсолютные, так и относительные пути.

Перемещает файл или каталог и его содержимое в новое место.

Получает цель указанной ссылки на каталог.

Применяет записи списка управления доступом (ACL), описанные объектом DirectorySecurity, к указанному каталогу.

Устанавливает дату и время создания указанного файла или каталога.

Устанавливает дату и время создания в формате всемирного координированного времени (UTC) для указанного файла или каталога.

Устанавливает текущий рабочий каталог приложения в указанный каталог.

Устанавливает дату и время последнего обращения к указанному файлу или каталогу.

Устанавливает дату и время в формате всемирного координированного времени (UTC), когда в последний раз осуществлялся доступ к указанному файлу или каталогу.

Устанавливает дату и время последней записи в каталог.

Устанавливает дату и время в формате всемирного координированного времени (UTC), когда каталог был в последний раз записан.

Графические пользовательские интерфейсы могут быть великолепными, но если вы уже работаете в своем любимом терминале, зачем вам запускать другое приложение для создания нового файла или каталога? В зависимости от ситуации вы, вероятно, не захотите этого делать, и, к счастью, существуют инструменты командной строки, которые чрезвычайно упрощают создание новых каталогов и файлов.

Начало работы

Если вы еще не работаете в своем любимом терминальном приложении, я бы посоветовал запустить его и продолжить.

Скорее всего, вы находитесь в своем домашнем каталоге. Это нормально, но если вы хотите избавить себя от очистки файлов и каталогов позже, вы можете использовать cd /tmp .

Все файлы, которые вы создаете в /tmp, будут удалены при следующей перезагрузке, что избавит вас от проблем.

Создание каталога

Давайте начнем с создания каталога рептилий, который мы будем использовать в следующих примерах. Чтобы создать каталог, вы будете использовать команду mkdir, за которой следует имя каталога, который вы хотите создать:

Создание нескольких каталогов

Теперь, когда мы находимся внутри нашего каталога рептилий, мы можем создать несколько каталогов для представления различных типов рептилий.

Для этого мы можем указать несколько каталогов, которые мы хотели бы создать, в качестве аргументов команды mkdir:

Быстрый ls показывает, что теперь у нас есть три каталога внутри нашего каталога рептилий.

Создание вложенных каталогов

Можно подумать, что передача ряда каталогов в mkdir приведет к созданию вложенных каталогов.

Вы правы только наполовину, так как что-то вроде mkdir turtle/images сообщит нам, что каталог не может быть создан, поскольку такого файла или каталога не существует.

Если бы мы попробовали mkdir змея/изображения, все было бы в порядке, потому что каталог змеи уже существует.

Чтобы сообщить mkdir, что мы хотели бы попытаться создать каждый каталог в пути, мы используем аргумент -p или --parents:

Аргумент --parents создает каждый каталог по пути и может использоваться для создания столько каталогов, сколько вам нужно и/или поддерживает операционная система:

Запуск древовидной ящерицы покажет ряд только что созданных вложенных каталогов.

Создание каталогов в нескольких каталогах

Чтобы создать каталог с именем video внутри каталогов alligator и crocodile, мы могли бы указать пути к обоим каталогам:

Обмен именами файлов позволяет нам добиться этого с помощью более простого синтаксиса:

Создание пустого файла

Теперь, когда у нас создана целая куча каталогов, давайте попробуем создать несколько файлов.

Самый простой способ создать файл, особенно пустой, — использовать команду touch:

Если файл уже существует, сенсор не будет жаловаться. Что он будет делать, так это устанавливать время изменения файла на текущее время, эффективно касаясь файла!

Создание пустых файлов

Подобно тому, как mkdir может принимать несколько путей, touch может делать то же самое:

Или использование blobbing имен файлов:

Создание пустых файлов в нескольких каталогах

Использование touch не ограничивается только именами файлов, вы также можете указать пути к файлам:

Чтобы сделать еще один шаг вперед, вы можете использовать предыдущий совет по созданию больших двоичных объектов и с легкостью создавать новые пустые файлы в нескольких каталогах:

Еще одним шагом будет создание нескольких файлов в нескольких каталогах с дополнительными BLOB-объектами:

Создание файла с текстом

Пустые файлы — это хорошо, но они не помогут вам. Используя команду echo и оператор >, мы можем создать совершенно новый файл и заполнить его текстом, даже не открывая текстовый редактор:

Однако будьте осторожны, > означает создание или перезапись файла. Если файл уже существует, его содержимое будет полностью перезаписано!

Более безопасный подход — использовать >> в сценариях, где файл может существовать. Это создаст файл и добавит к нему текст. Если файл существует, текст будет добавлен в его конец:

Создание файла с выходным файлом

Использование > и >> с эхом просто берет вывод из эха и записывает его в файл. Как оказалось, вы можете заменить эхо на любую команду, которая записывает в стандартный вывод.

Например, если вы хотите создать файл, содержащий список всех файлов *.txt в каталоге, вы можете:

Запуск cat directory.txt показывает выходные данные команды ls, которые теперь хранятся в directory.txt .

Заключение

Создание файлов и каталогов может быть простым щелчком правой кнопки мыши в вашем любимом файловом менеджере, но, зная всего несколько команд, вы можете выполнить ту же работу в командной строке.

Самое важное преимущество командной строки над приложением с графическим интерфейсом – это быстрота и простота создания нескольких файлов и каталогов.

Такая задача, как создание более 10 вложенных каталогов, вызовет судороги при работе с мышью и лишь тривиально быстрее при использовании горячих клавиш. Командная строка может многое сделать всего одной или двумя командами.

HPS поддерживает иерархическую структуру хранения, называемую деревом. Прежде чем вы сможете хранить какие-либо файлы в дереве HPSS, вы должны сначала иметь доступ для записи в домашний каталог. Если вам нужно сохранить только несколько файлов, вам не нужно много знать о древовидных структурах. Вы можете использовать простое дерево с вашим домашним каталогом в качестве корня, как показано в следующем примере.

Вы можете установить этот простой тип root (обычно не требуется), введя

После того, как этот корень установлен, вы можете хранить файлы на HPSS, введя

Вы можете получить файлы, введя

  • Дерево состоит из узлов, соединенных ветвями, указывающими на иерархию.
  • Узлы могут быть каталогами, подкаталогами или файловыми дескрипторами.
  • Источником дерева является корневой узел или корневой каталог "/".
  • От корня отходят узлы-потомки, которые могут быть подкаталогами или файловыми дескрипторами.
  • Термин узел каталога относится к подкаталогу. Только узлы каталога могут иметь потомков.
  • Каталог содержит список всех своих непосредственных дочерних узлов.
  • Поддерево — это любой узел дерева и все его потомки.
  • Родитель узла находится на следующем более высоком уровне дерева. Корневой узел "/" не имеет родителя.
  • Домашний каталог — это начальная точка дерева, с которой начинается поддерево определенного пользователя.
  • Описатель файла содержит информацию о файле, например фактическое расположение самого файла в хранилище. Дескриптор файла не имеет потомков.
  • Используйте команду MD (или один из ее псевдонимов, ADD или MKDIR ) для добавления узлов подкаталога в домашний каталог и в другие подкаталоги.
  • Наконец, используйте команды SAVE и STORE для добавления узлов файловых дескрипторов по мере передачи файлов в HPSS.

Создайте подкаталог "flowcode" в домашнем каталоге (/u/foo в этом примере для пользователя с именем `foo'):

Перейдите в подкаталог "flowcode" и добавьте подкаталоги "версия1" и "версия2"

Перейдите в подкаталог "version1" и добавьте подкаталог "run"

Сохраните файлы "t396" и "t425"

Перейдите в подкаталог "version2" и добавьте подкаталог "run"

Сохраните файл T318 в подкаталоге "version2"

  • Узел каталога "версия1" имеет "flowcode" в качестве родителя и "run" в качестве непосредственного потомка;
  • Поддерево "версия1" состоит из узла каталога "run", который, в свою очередь, состоит из файловых узлов "t396" и "t345";
  • Узел каталога "версия2" имеет "flowcode" в качестве родителя и "run" в качестве непосредственного потомка;
  • Поддерево "версия2" состоит из узла каталога "run" и узла файла "t318".
  • В предыдущем примере показано, как можно организовать несколько проектов разработки программного обеспечения с несколькими версиями исходного кода, выходных данных и т. д. В узле каталога FLOWCODE отдельные версии исходного кода и исполняемого кода хранятся вместе с входными файлами. . Обратите внимание, что узлы в разных подкаталогах могут иметь одинаковые имена, поскольку уникальным должен быть только полный путь.

    Также можно создавать узлы каталога не в домашнем каталоге, обычно для обмена файлами между группой людей, работающих над общим проектом. Дополнительную информацию см. в разделе 6 «Безопасность и общий доступ к файлам».

    Если ваши проекты изменятся в размере или масштабе, вы можете реорганизовать древовидную структуру:

  • Команда MV — это мощный инструмент для преобразования древовидной структуры HPSS из одной формы в другую. Эта команда позволяет перемещать поддеревья как внутри дерева, так и между деревьями практически неограниченным образом. Подробное описание MV см. в разделе 7 "Команды, ключевые слова и параметры".
  • Команда LN позволяет косвенно ссылаться на файлы и каталоги через символические ссылки.
  • 5.2 Определение пути

    Чтобы сослаться на узел файла или узел каталога в дереве HPSS, необходимо указать имя полного пути, начиная с корневого узла вниз.

  • Если первым символом пути является косая черта (/), путь считается полным путем к файлу или каталогу HPSS.
  • Если первый символ пути не является косой чертой, HSI строит полный путь, добавляя к нему префикс с содержимым одного из рабочих каталогов (см. Рабочие каталоги в этом разделе).
  • Максимальная длина имени каждого узла – 255 символов. Максимальная длина пути, включая косые черты, составляет 1023 символа. Дополнительную информацию см. в разделе Параметр пути в разделе 7.

    Полный путь к файлу T318

    5.3 Обозначение пути в стиле UNIX

    5.4 Рабочие каталоги

    HSI предоставляет рабочие каталоги, чтобы исключить необходимость вводить полный путь каждый раз, когда вы обращаетесь к файлу или каталогу HPSS. Рабочие каталоги позволяют хранить весь путь или его часть для использования в последующих запросах, используя сокращенную запись вместо полного пути. Пути могут храниться в каждом из десяти рабочих каталогов (DIRn)

  • на время одного запроса,
  • на время текущего сеанса HSI или
  • как часть набора ключей для длительного использования с использованием запроса KEEP.
  • Содержимое рабочего каталога задается с помощью ключевого слова DIR n, где n может принимать значения от 0 до 9 (десять рабочих каталогов называются DIR0, DIR1, .DIR9). Они могут быть сокращены как D0, D1, . Д9.

  • DIR0 — это основной или рабочий каталог по умолчанию, который может называться DIR или D0. Использование основного каталога очень важно в HPSS. См. правила рабочего каталога в этом разделе, чтобы узнать о преимуществах использования основного рабочего каталога.
  • DIR0 задается как корневой путь к вашему домашнему каталогу (например, "/u/foo") при запуске HSI.
  • При запуске HSI остальные девять рабочих каталогов пусты.
  • Как вы устанавливаете DIRn, важно.

  • Если значение рабочего каталога (DIRn) задано с помощью команды SET, оно будет действовать в течение всего сеанса с HSI или до тех пор, пока не будет изменено другим SET или командой ADOPT.
  • Если DIRn используется в любом другом типе запроса HSI, он будет установлен только на время действия этого запроса.
  • В нотации n простых чисел (n') используется значение пути DIR n, где n — номер рабочего каталога, в котором был сохранен путь. Например, вы можете установить DIR2, введя

    Затем вы можете использовать DIR2 в запросе следующим образом:

    Этот запрос извлечет файл /u/dobbs/dirname/fileit из HPSS.

    Хотя параметр рабочего каталога действует до сброса или до завершения HSI, его можно временно переопределить, установив его в запросе. В следующем примере DIR2 устанавливается в другой подкаталог только на время запроса GET.

    Обратите внимание, что после этого GET-запроса для DIR2 по-прежнему установлено значение /u/dobbs/имя_каталога.

    5.5 Правила рабочего каталога

    Важные правила использования рабочих каталогов и интерпретации путей приведены в следующей таблице. Подробная информация о каждом из правил приведена в таблице.

    Формат пути Описание

    5.6 Правила разрешения пути

    <ПР>
  • Если первым символом входного пути является косая черта (/), путь считается полным путем к файлу или каталогу.
  • Если первый символ входного пути не является косой чертой, тогда путь будет сформирован с рабочим каталогом с использованием одной из нескольких сокращенных нотаций, определенных в следующих правилах, для формирования полного пути.
  • Если первые символы 0', 1'. 9' (обозначение n'), то HSI использует это значение рабочего каталога для начальной части пути. Например, установите d6 = /first/second, затем сохраните 6'therte, чтобы сохранить /first/second/therth
  • Если первые цифры соответствуют формату -k (-1, -2 и т. д.), то используется основной рабочий каталог (DIR0) с удаленными k правыми именами узлов. Например, установите dir0 = /abcd/subd/subsubd, тогда список -2 станет списком /abcd
  • Пути формы n'-k сочетают в себе эффекты правил 3 и 4, когда из пути в DIRn удаляются самые правые k имен узлов. Чтобы повторить предыдущий пример с DIR3: установите dir3 = /abcd/subd/subsubd, тогда список 3'-2 станет списком /abcd
  • Если путь представляет собой только знак минус (-), то полным путем будет текущий путь в основном рабочем каталоге (DIR0). Исключение из этого правила возникает, когда вы присваиваете значение рабочему каталогу (DIRn=-). В этом случае знак минус означает, что присвоено системное значение по умолчанию. Для DIR1-9 это очищает любое значение ключевого слова, а для DIR0 сбрасывает его в ваш домашний каталог. Пробел в назначении рабочего каталога не допускается. Если для определенных команд путь не указан, в качестве пути используется содержимое основного рабочего каталога. Однако некоторые команды требуют явного указания пути.
  • Если ни одно из предыдущих условий не выполняется, используется первичный рабочий каталог DIR0, что является самым простым и наиболее распространенным случаем, что делает первичный рабочий каталог таким полезным. Вы можете ПОЛУЧАТЬ и СОХРАНЯТЬ файлы, используя только имена файлов, потому что по умолчанию вы используете содержимое основного рабочего каталога, а по умолчанию он содержит ваш домашний каталог. Вы можете самостоятельно установить для DIR0 другие пути, и HSI будет использовать его автоматически, если явно не указан другой рабочий каталог.Например, если установить d0 = /greenroot/projectc, то при сохранении fortx локальный файл `fortx' будет сохранен на HPSS в /greenroot/projectc/fortx
  • 5.7 Присвоение значений рабочим каталогам

    Когда DIR2 = 1'следующий_уровень, рабочий каталог 2' становится значением рабочего каталога 1 плюс узел "следующий_уровень". Таким образом, DIR2:

    Когда DIR3 = 2'-2, рабочему каталогу 3' присваивается значение рабочего каталога 2' минус два его последних узла или:

    Если D0 = -, основной рабочий каталог сбрасывается до значения по умолчанию, вашего домашнего каталога HPSS.

    Рабочие каталоги упрощают использование деревьев HPSS. Например, если вы работаете с поддеревом FLOWCODE в примере из раздела 5.1 (Комплексное дерево), вы можете сначала определить основной рабочий каталог с помощью

    Вы можете получить доступ к узлам в этом подкаталоге, используя следующую серию запросов:

    Для обхода поддерева введите следующий запрос:

      /u/foo/flowcode/version1/src
      d1 = /u/foo/flowcode/version2/run
      КП т318 1'т318аа
      /u/foo/flowcode/version1/run/t318
      /u/foo/flowcode/version2/run/t318a

    5.8 Определение локальных файлов для HSI

    В таких запросах, как GET, SAVE и STORE, имя локального файла на вашем компьютере и имя файла в HPSS должны быть известны HSI. Если эти имена совпадают, в запросе требуется только имя файла HPSS, поскольку имя последнего узла в пути HPSS для этих команд считается именем локального файла. Однако, если имена различаются, оба имени должны отображаться в запросе следующим образом:

    Обратите внимание, что начиная с HSI версии 2.4, символ двоеточия должен быть отделен от имени локального файла и имени файла HPSS пробелом. Пробел был необязательным в предыдущих версиях HSI. Однако это приводило к двусмысленности и путанице при попытке использовать имена файлов, содержащие символы двоеточия (например, имена файлов с отметками времени как часть имени файла), и усугублялось синтаксисом букв логического диска с несколькими HPSS, который состоит из буквы диска. с последующим двоеточием, например,

  • если у вас уже есть локальный файл с тем же именем, что и у извлекаемого файла HPSS,
  • если вы хотите дать файлу HPSS более описательное (более длинное) имя, чем локальному файлу, или
  • поскольку имя локального файла длиннее 255 символов (максимум HPSS).
  • Для иллюстрации, если локальный файл имеет имя TEST, его можно сохранить в корневом каталоге `/projectj' с помощью команды, показанной в следующем примере:

    Пример: определение локальных файлов для HSI

    Обратите внимание: поскольку имена HPSS могут содержать до 255 символов, было добавлено больше описательной информации, включая код даты "851014" и обозначение версии "X".

    Чтобы получить файл и восстановить исходный локальный файл с именем `test', вы можете использовать команду

    Как отмечалось выше, пробел по обе стороны от двоеточия требуется для HSI версии 2.4 и выше (используйте команду version, чтобы узнать, какую версию HSI вы используете). Примечание: локальный файл всегда отображается слева от двоеточия.

    5.9 Использование подстановочных знаков

    Подстановочные знаки обеспечивают "сокращенное" обозначение пути для выбора одного или нескольких имен файлов или каталогов в запросах HSI. Они упрощают работу по полному указанию конкретных файлов или групп файлов. Наличие специальных подстановочных знаков в пути приводит к выбору имен узлов, которые «соответствуют» заданному шаблону. HSI расширяет «дикий путь» (путь, содержащий подстановочные знаки) в набор путей, а затем применяет вашу команду к каждому пути.

    Например, можно ПОЛУЧИТЬ все файлы, начинающиеся с `abc' и заканчивающиеся на 'xyz', указав имя как abc*xyz .

    Специальными подстановочными знаками являются *, ?, [ ], <> и ^. Они имеют следующие значения:

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

    Примечание: поскольку в этом разделе очень много примеров, префикс "example: " не будет использоваться.

    5.9.1 Символ *(звездочка)

    5.9.2 ? (Вопросительный знак) Символ

    5.9.3 [ ] (квадратные скобки) символы

    Подстановочные знаки [ ] используются для разделения диапазона символов или набора отдельных символов, которые должны быть сопоставлены.

      [123[абв]]
      [123][789]*
      список фубаров3
      foobar2, foobar3 и foobar4
      список фубаров[24]
      фубар2 и фубар4
      4

    5.9.4 < >Символы (фигурные скобки)

    Фигусные скобки на самом деле не являются подстановочными знаками; вместо этого они используются для хранения списков шаблонов, разделенных запятыми. Они также могут быть вложенными, если для каждого открытия есть соответствующий «>».

    5.9.5 ^ (знак каретки)

    Подстановочный знак ^ обеспечивает операцию дополнения или "не". Его можно использовать только в первой позиции дикого пути или сразу после левой скобки.

      список ^f
      a, ab, abc, foobar1, foobar2, foobar3 и foobar4
      список фубаров[^2]
      foobar1, foobar3 и foobar4
      список ^foobar[^2]
      a, ab, abc, f и foobar2

    5.9.6 Команды, работающие с подстановочными знаками

    Подстановочные знаки можно использовать везде, где есть ссылка на локальный путь или имя пути HPSS. В некоторых случаях имя пути должно разрешаться в одно имя узла (например, set dir=~/myp*). В этих случаях использование подстановочных знаков можно рассматривать как просто сокращенное обозначение имени узла.

    При использовании подстановочных знаков с GET следует учитывать некоторые особенности. Использование опции localfile в GET-запросе ограничено подстановочными знаками.

    Запросы GET для файлов с именами HPSS длиннее, чем разрешено в некоторых системах типа UNIX, приводят к усечению имен без сообщения об ошибке.

    Дополнительную информацию см. в разделе «Рекомендации по использованию операционных систем для однострочников» в разделе 7.

    5.9.7 Многоуровневые подстановочные знаки

    Подстановочные знаки можно использовать на любом и всех уровнях дикого пути, хотя в предыдущих примерах подстановочные знаки показывались только в одном узле дикого пути.

      список /usr/local/bin/*abc/??def*/xyz[234]привет*
      удалить ab*/*/cd?
      удалить ab*/cd?

    5.9.8 Подстановочные знаки в рабочих каталогах

    Ключевому слову DIRn можно задать дикий путь, но оно должно разрешаться в одно имя узла HPSS. В этом контексте использование подстановочных знаков можно рассматривать как сокращенную нотацию (возможно, для экономии ввода) для указания имени узла.

    5.9.9 Допустимые дикие пути

    Подстановочный путь, используемый в однострочном коде в системе на базе UNIX, должен быть заключен в одинарные или двойные кавычки, либо перед подстановочными знаками должен стоять escape-символ (\). См. раздел «Особенности операционной системы для однострочных программ» в разделе 7.

    5.9.10 Вывод подстановочных знаков

    5.9.11 Удаление файлов

    Использование команды RM может быть разрушительным; дикие карты могут сделать это еще больше. Вместо этого вы можете использовать команду MDELETE, которая запрашивает подтверждение каждого удаления перед выполнением команды HPSS для удаления файла.

    5.9.12 Производительность

    Во время поиска HSI путей, соответствующих вашему подстановочному выражению, могут возникать заметные задержки, в зависимости от того, насколько точно указан путь и когда при поиске встречаются узлы, удовлетворяющие выражению.

    Мы узнали, как использовать pwd для определения нашего текущего местоположения в нашей файловой системе. Мы также узнали, как использовать cd для изменения местоположения и ls для просмотра содержимого каталога. Теперь мы изучим некоторые дополнительные команды для перемещения по нашей файловой системе.

    Используйте команды, которые мы уже изучили, чтобы перейти в каталог shell_data/untrimmed_fastq, если вы еще этого не сделали.

    Что, если мы хотим вернуться назад и выйти из этого каталога в наш каталог верхнего уровня? Можем ли мы ввести cd shell_data ? Попробуйте и посмотрите, что получится.

    Ваш компьютер искал каталог или файл с именем shell_data в каталоге, в котором вы уже находились. Он не знал, что вы хотите посмотреть на уровень каталога выше того, в котором вы находились.

    У нас есть специальная команда, которая сообщает компьютеру, что нужно переместить нас назад или вверх на один уровень каталога.

    Теперь мы можем использовать pwd, чтобы убедиться, что находимся в каталоге, к которому собирались перейти, и ls, чтобы проверить правильность содержимого каталога.

    Из этого вывода видно, что .. действительно возвращает нас на один уровень назад в нашей файловой системе.

    Вы можете связать их вместе следующим образом:

    распечатывает содержимое /home .

    Поиск скрытых каталогов

    Сначала перейдите в каталог shell_data. В этом каталоге есть скрытый каталог. Изучите параметры ls, чтобы узнать, как увидеть скрытые каталоги. Перечислите содержимое каталога и определите имя текстового файла в этом каталоге.

    Подсказка: скрытые файлы и папки в Unix начинаются с . , например .my_hidden_directory

    Решение

    Сначала используйте команду man, чтобы просмотреть параметры ls .

    Опция -a является сокращением от all и говорит, что она заставляет ls «не игнорировать записи, начинающиеся с ». Это тот вариант, который нам нужен.

    Имя скрытого каталога — .hidden . Мы можем перейти в этот каталог, используя cd .

    А затем выведите список содержимого каталога с помощью ls .

    Имя текстового файла — youfoundit.txt .

    В большинстве команд флаги можно комбинировать в произвольном порядке для получения желаемых результатов/вывода.

    Просмотр содержимого других каталогов

    По умолчанию команды ls выводят список содержимого рабочего каталога (то есть каталога, в котором вы находитесь). Вы всегда можете найти каталог, в котором находитесь, с помощью команды pwd. Однако вы также можете указать ls имена других каталогов для просмотра. Перейдите в свой домашний каталог, если вы еще этого не сделали.

    Затем введите команду:

    Это отобразит содержимое каталога shell_data, и вам не нужно будет туда переходить.

    Команда cd работает аналогичным образом.

    Это приведет вас к каталогу untrimmed_fastq без необходимости перехода через промежуточный каталог.

    Практика навигации

    Перейдите в свой домашний каталог. Оттуда перечислите содержимое каталога untrimmed_fastq.

    Решение

    Полный и относительный пути

    Команда cd принимает в качестве аргумента имя каталога. Каталоги можно указать с помощью относительного пути или полного абсолютного пути. Каталоги на компьютере организованы в иерархию. Полный путь сообщает вам, где находится каталог в этой иерархии. Перейдите в домашний каталог и введите команду pwd.

    Это полное имя вашего домашнего каталога. Это говорит вам, что вы находитесь в каталоге с именем dcuser, который находится внутри каталога с именем home, который находится в самом верхнем каталоге в иерархии. На самом верху иерархии находится каталог с именем /, который обычно называют корневым каталогом. Итак, подведем итог: dcuser — это каталог в доме, который является каталогом в / . Подробнее о root и home в следующем разделе.

    Теперь введите следующую команду:

    Это позволяет перейти на несколько уровней вперед к каталогу .hidden. Теперь вернитесь в домашний каталог.

    Вы также можете перейти в каталог .hidden, используя:

    Эти две команды имеют одинаковый эффект, они обе ведут нас в каталог .hidden. Первый использует абсолютный путь, задавая полный адрес из домашнего каталога. Второй использует относительный путь, задавая только адрес из рабочего каталога. Полный путь всегда начинается с / . Относительный путь — нет.

    Относительный путь подобен получению указаний от кого-то на улице. Они говорят вам «идти направо на знаке остановки, а затем повернуть налево на главную улицу». Это отлично работает, если вы стоите там вместе, но не так хорошо, если вы пытаетесь рассказать кому-то, как туда добраться из другой страны. Полный путь подобен GPS-координатам. Он точно сообщает вам, где что находится, независимо от того, где вы сейчас находитесь.

    Обычно можно использовать полный или относительный путь, в зависимости от того, что удобнее. Если мы находимся в домашнем каталоге, то удобнее вводить полный путь. Если мы находимся в рабочем каталоге, удобнее вводить относительный путь, так как это требует меньшего набора текста.

    Со временем вам станет легче запоминать структуру используемых вами каталогов и способы быстрой навигации по ним.

    Относительное разрешение пути

    1. ../backup: Нет такого файла или каталога
    2. 01.12.2012 08.01.2013 27.01.2013
    3. 01.12.2012/08.01.2013/27.01.2013/
    4. исходный pnas_final pnas_sub

    Решение

    1. Нет: есть резервная копия каталога в /Users .
    2. Нет: это содержимое Users/thing/backup , но с .. мы запросили один уровень выше.
    3. Нет: см. предыдущее объяснение. Кроме того, мы не указали -F для отображения / в конце имен каталогов.
    4. Да: ../backup относится к /Users/backup .

    Быстрые клавиши навигации

    Корневой каталог — это каталог самого высокого уровня в вашей файловой системе, содержащий файлы, важные для ежедневной работы вашего компьютера. Хотя вы будете использовать корень ( / ) в начале ваших абсолютных путей, важно избегать работы с данными в этих каталогах более высокого уровня, поскольку ваши команды могут навсегда изменить файлы, необходимые для работы операционной системы. Во многих случаях для запуска команд в корневых каталогах потребуются специальные разрешения, которые здесь не обсуждаются, поэтому лучше избегать их и работать в своем домашнем каталоге. Работа с домашним каталогом очень распространена. Символ тильды ~ — это ярлык для вашего домашнего каталога. В нашем случае корневой каталог находится на два уровня выше нашего домашнего каталога, поэтому cd или cd ~ приведет вас к /home/dcuser, а cd / приведет вас к / . Перейдите в каталог shell_data:

    Затем введите команду:

    Это распечатает содержимое вашего домашнего каталога, и вам не нужно вводить полный путь.

    Команды cd и cd ~ очень полезны для быстрого возврата в домашний каталог. В последующих уроках мы будем использовать символ ~ для указания нашего домашнего каталога.

    Читайте также: