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

Обновлено: 03.07.2024

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

Во время учебы вы получаете, используете и создаете множество файлов. Файлы являются контейнерами всех типов данных: текстовые данные, исходный код, исполняемый программный код, аудио- или видеоданные, эконометрические данные и многие другие виды. Файлы организованы в виде древовидной иерархической структуры папок, которые могут содержать файлы или подпапки. Папки иногда называют каталогами. Путь сообщает нам, где находится файл в этой иерархии папок и подпапок, разделенных разделителем пути. В Windows разделителем пути является \ , а в Linux или macOS — / . Путь может относиться к текущей папке или рабочему каталогу, например, путь myfile.txt относится к файлу в текущей папке, тогда как путь data/myfile.txt относится к файлу в подпапке data текущей папки. Абсолютный путь, например C:\Users\Jane Doe\Documents\mydata.txt в Windows или /home/janedoe/documents/mydata.txt в Linux или macOS, не зависит от текущей папки. Однако абсолютные пути, скорее всего, сломаются при передаче файла другому компьютеру или другому пользователю, поскольку они, вероятно, сохранят файл в другом месте. Поэтому в своих программах лучше использовать относительные пути. Однако, если у вас возникли проблемы с поиском определенного файла внутри вашей программы, полезно просмотреть абсолютные пути в целях отладки.

Мы настоятельно рекомендуем вам хорошо организовать файловую систему на ваших личных устройствах, чтобы поиск файлов оставался простым. Для работы, связанной с учебой, вы можете создать папку «Эконометрика», затем создать подпапки «Год 1», «Год 2», «Год 3» и так далее, и в них вы можете создать подпапку для каждого курса, который вы изучаете. Не стесняйтесь придумывать схему, которая вам нравится, но имейте в виду, что хранение всех ваших важных файлов в папке «Загрузки» напрашивается на неприятности. Чтобы узнать больше о структурировании файловой системы, посмотрите это видео о том, как структурировать файловую систему.

Кроме того, мы настоятельно рекомендуем время от времени создавать резервные копии файлов или синхронизировать локальные файлы с облачной службой, такой как Dropbox или OneDrive. Таким образом, вы избегаете потери ценной (учебной) работы при поломке устройства. Это может избавить вас от стресса, особенно когда приближается крайний срок учебы.

Чтение файлов с помощью сканера

В курсе «Введение в программирование» мы познакомили вас с чтением файлов с помощью класса Scanner. Когда мы хотим прочитать файл с помощью класса Scanner, мы указываем путь к файлу, который мы хотим прочитать, в качестве параметра конструктору класса. Путь к файлу можно получить с помощью команды Java Paths.get, которая преобразует путь в строковом формате в объект Path, представляющий путь. Например, вы можете использовать Paths.get("filename.extension") . Если вы хотите получить файл во вложенной папке, вы можете передать Path.get несколько аргументов, например, Paths.get("data", "week1", "mydata.txt"), который получит объект Path для файл, расположенный в подпапке локального каталога.

После создания объекта Scanner, считывающего файл, файл можно прочитать с помощью цикла while. Чтение продолжается до тех пор, пока не будут прочитаны все строки файла, т. е. пока сканер не найдет больше строк для чтения. Чтение файла может привести к ошибке, поэтому необходим блок try-catch.

Файл читается из корня проекта по умолчанию (при вызове new Scanner(Paths.get("file.txt"))), т.е. из папки, содержащей папку src (и, возможно, другие файлы) . Содержимое этой папки можно проверить с помощью вкладки Project Files в IntelliJ.

Чтение файлов с помощью BufferedReader

Ссылаясь на приведенный выше пример, необходимо разместить некоторые комментарии к BufferedReader. Во-первых, входным аргументом, который передается конструктору, не может быть файл (имя), а нам нужно передать Reader, например FileReader. Кроме того, мы обнаруживаем конец файла, проверяя, является ли результат readLine() нулевым или нет. Мы не можем пропустить эту проверку, так как мы получили бы исключение NullPointerException, если бы вызвали метод length для нулевого объекта двумя строками позже. Наконец, обратите внимание, что возможно не только исключение FileNotFoundException, но мы также должны поймать исключение IOException.Исключение ввода/вывода является сокращением от исключения ввода/вывода и может быть вызвано любой ошибкой ввода или вывода. Вот неисключительный список примеров, которые вызовут исключение IOException:

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

Запись файлов

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

В приведенном выше примере мы записываем в файл "file.txt" строку "Hello file!", за которой следует изменение строки и некоторый дополнительный текст. Обратите внимание, что при записи в файл метод print не добавляет изменений строк, и вам придется добавлять их самостоятельно. Напротив, метод println добавляет новое изменение строки в конец строки параметров, которую он получает. Вы уже хорошо знакомы с этим использованием из-за System.out.println() .

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

В приведенном выше методе writeToFile мы начинаем с создания объекта PrintWriter. Он записывает данные в файл, расположенный по пути, указанному в строке fileName. После этого мы записываем текст в файл, вызывая метод println. Возможное исключение, которое создает конструктор, должно быть обработано блоком try-catch, или ответственность за обработку должна быть передана куда-то еще. В методе writeToFile ответственность за обработку исключения возлагается на метод, вызывающий writeToFile .

Давайте создадим основной метод, который вызывает writeToFile объекта Storer. Нет ничего, что заставляло бы основной метод обрабатывать исключение — он тоже может заявить, что может генерировать исключение, добавив throws Exception в определение метода.

Вызывая метод выше, мы создаем файл с именем «diary.txt» и пишем текст «Дорогой дневник, сегодня был хороший день». внутрь. Если файл уже существует, предыдущее содержимое стирается при сохранении нового текста.

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

Кроме имени файла в методе Storer, также можно передать файл в конструктор PrintWriter. Рассмотрим следующий пример:

Как видите, мы добавили вызов метода очистки PrintWriter. PrintWriter поддерживает буфер, поскольку обычно более эффективно записывать много данных на устройство хранения одновременно. Если мы хотим быть уверены, что все напечатанные данные действительно записаны в файл, мы должны вызвать flush(). Если программа аварийно завершает работу до того, как файл будет закрыт, возможно, в файл не были записаны несброшенные данные. Чтобы отметить разницу между напечатанными и записанными данными, обратите внимание, что напечатанные данные — это данные, которые вы отправляете в PrintWriter, а записанные данные означают, что данные фактически записываются на жесткий диск или сохраняются в файле. Есть разница, потому что PrintWriter часто немного выжидает с фактической записью с точки зрения эффективности. Когда PrintWriter закрывается, метод сброса вызывается автоматически. Поскольку мы использовали PrintWriter в среде try-with-resources, PrintWriter уже закрылся бы после линии сброса, автоматически вызывая его. Таким образом, здесь вызов flush() предназначен только для демонстрационных целей, но полезно знать, что вы должны помнить о закрытии или сбросе PrintWriter, если вы держите файл открытым в течение длительного времени.

Фильтрация файла

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

Класс файлов

Альтернативный способ чтения файлов представлен в классе Files. Этот класс чрезвычайно удобен для чтения файлов. Как вы можете видеть в документации, предоставляются методы Files.readAllLines(Path path) и Files.readAllLines(Path path, Charset cs), которые считывают все строки файла и помещают их в List .Этот класс также предоставляет методы для записи, такие как write(Path path, byte[] bytes, OpenOption. options) . Ниже приведен простой пример использования этого класса:

В этом примере выделяется несколько моментов. Во-первых, метод выдает IOException , потому что при записи и чтении файлов могут возникнуть некоторые проблемы. Исключение передается обработчику, которым в данном случае является программист, использующий код. Кроме того, файл, записанный во второй строке, содержит несколько аргументов \n, которые эквивалентны вводу s. После того, как все строки из только что созданного файла прочитаны, они печатаются в цикле for-each. Ожидаемый результат следующий:

Здравствуйте! Я люблю программировать!

Как вы могли заметить, один из методов чтения, предоставляемых классом Files, принимает в качестве аргумента набор символов. Это может быть важно, когда вы имеете дело с данными, содержащими специальные символы, такие как é или Emoji. Вы можете прочитать больше в справочном материале по этой теме.

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

Просмотр каталогов

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

  • Имя. Имя объекта используется для идентификации объекта и доступа к нему.
  • Число. Число определяет индексный дескриптор, в котором хранится информация об объекте.

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

Что такое Inode?

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

Определение текущего каталога

Команда pwd указывает полный или абсолютный путь к текущему рабочему каталогу.

Отображение содержимого каталога

Команда ls отображает содержимое каталога. Синтаксис команды ls:

Ниже приведены несколько примеров использования команды ls для просмотра содержимого каталога.

<р>1. Чтобы вывести список файлов и каталогов в текущем каталоге (/export/home/student), введите команду ls без аргументов.

<р>2. Чтобы отобразить содержимое определенного каталога в текущем рабочем каталоге, введите команду ls и имя каталога.

<р>3. Чтобы отобразить содержимое каталога, который не находится в текущем рабочем каталоге, введите команду ls с полным путем к этому каталогу.

Отображение содержимого каталога с параметрами

Команда ls -l отображает длинный список информации о файле.

список файлов и описание каждого поля в Linux

Ниже приводится краткое объяснение частей длинного списка, показанного на рисунке выше:

  • Первый символ — это тип файла. Это может быть файл (-), каталог (d), символическая ссылка (l) и т. д.
  • Вторые девять разрядов указывают права доступа к файлу: r означает доступ для чтения, w означает доступ для записи, x означает доступ к исполняемому файлу, а – означает отказ.
  • Третий раздел (одно число) – это количество ссылок.
  • Четвертый раздел — владелец (пользователь).
  • Пятый раздел — это группа (пользователь).
  • Шестой раздел – размер файла.
  • Седьмой раздел — это дата.
  • Восьмой раздел — это имя файла.

Некоторые файлы скрыты от просмотра при использовании команды ls. Скрытые файлы часто содержат информацию, которая настраивает вашу рабочую среду. Команда «ls -la» выводит список всех файлов в каталоге, включая скрытые файлы.

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

Команда ls -ld отображает подробную информацию о каталоге, но не показывает его содержимое.

Например, чтобы получить подробную информацию о каталоге dir1, введите команду ls -ld.

Например, чтобы просмотреть рекурсивный список содержимого каталога dir1, введите команду ls -R dir1.

Отображение типов файлов

Знание типа файла может помочь вам выбрать команду или программу для чтения файла. Команда ls -F или команда file отображает типы файлов. Например:

В следующей таблице показаны символы или индикаторы, используемые с выводом команды «ls –F».

Команда file также помогает определить определенные типы файлов. Синтаксис команды файла:

Например, чтобы просмотреть тип файла «тест», введите команду файла и укажите имя файла.

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

  • Текст. Текстовые файлы включают текст американского стандартного кода для обмена информацией (ASCII), текст на английском языке, текст команд и исполняемые сценарии оболочки.
  • Данные: файлы данных создаются программами. Команда file указывает тип файла данных, например документ FrameMaker, если этот тип известен. Команда file указывает, что файл является файлом данных, если его тип неизвестен.
  • Исполняемые или двоичные файлы. Исполняемые файлы включают 32-разрядные исполняемые файлы и файлы с кодом расширяемого формата компоновки (ELF) и другие исполняемые файлы с динамическим связыванием. Исполняемые файлы — это команды или программы.

Изменение каталогов

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

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

Символ Путь
. Текущий или рабочий каталог
.. Родительский каталог, каталог непосредственно над текущим рабочим каталогом

Например, чтобы перейти в родительский каталог для dir1, введите команду cd ...

Подтвердите текущий рабочий каталог с помощью команды pwd.

Примечание. Вы можете перемещаться вверх по иерархии каталогов на несколько уровней с помощью команды cd .., за которой следует косая черта (/). Например, «кд ../../..»

Относительный и абсолютный путь

Для перемещения по иерархии каталогов можно использовать как относительный, так и абсолютный путь. Имя относительного пути перечисляет каталоги в пути относительно текущего рабочего каталога. Абсолютный путь содержит список всех каталогов пути, начиная с корневого каталога (/).

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

Например, чтобы изменить каталоги, используя абсолютный путь, введите команду cd с полным путем из корневого каталога (/).

Домашний каталог

Домашний каталог обычного пользователя — это то место, куда пользователь попадает после входа в систему. Пользователь может создавать и хранить файлы в домашнем каталоге. Часто имя домашнего каталога пользователя совпадает с именем пользователя для входа. Например, если ваше имя пользователя для входа — john, ваш домашний каталог будет /home/john.

Возврат в домашний каталог

Вы можете вернуться в свой домашний каталог одним из двух способов:
1. Используйте команду cd без аргументов.

<р>2. Используйте команду cd с абсолютным путем к вашему домашнему каталогу.

Вы также можете перейти в домашний каталог пользователя, используя команду cd с символом тильды (~) перед именем пользователя. Тильда (~) — это аббревиатура, которая соответствует абсолютному пути пользователя.

Примечание. Символ тильды (~) является средством оболочки и доступен не во всех оболочках.

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

Вы также можете использовать символ тильды (~) для перехода к домашнему каталогу другого пользователя.

Я хочу перечислить все файлы и каталоги, содержащиеся в каталоге и подкаталогах этого каталога. Если бы я выбрал C:\ в качестве каталога, программа получила бы все имена всех файлов и папок на жестком диске, к которым у нее был доступ.

Список может выглядеть так


17 ответов 17

где *.* — шаблон для сопоставления файлов

Если каталог также необходим, вы можете сделать следующее:


Не сработает. Класс <>? Что возвращает GetFiles? А как насчет имен каталогов, которые также были запрошены?

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

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


Это, безусловно, лучший ответ здесь. Он получает все файлы и папки в одной строке кода, чего не делает ни один другой.

Я получаю некоторые скрытые папки, такие как: "F:\$RECYCLE.BIN", "F:\System Volume Information". Как игнорировать эти папки (чтобы отображались только файлы и папки)

Примечание: функция показывает только имена без относительных путей.

Используйте методы GetDirectories и GetFiles для получения папок и файлов.

Используйте SearchOption AllDirectories, чтобы также получить папки и файлы во вложенных папках.

@Gusdor Не стесняйтесь предлагать более подходящий способ использования пути для удаления фиксированной левой части пути, например. `C:` в приведенном примере.

@Lucero мой комментарий был плохо сформулирован. "Использовать подстроку" мало что мне говорит, и мне пришлось застрять в linqpad, чтобы найти хорошее решение. Например, каким должен быть параметр? Собираетесь ли вы использовать path.SubString(2), чтобы наивно удалить букву диска и двоеточие? Что делать, если каталог является сетевым ресурсом? Я предлагаю Path как надежный метод, потому что он может дать массу положительных эмоций в этой области. В этом случае вы можете написать filePath.Substring(Path.GetPathRoot(filePath).Length) . Да, здесь используется подстрока, так как она наиболее лаконична.

Боюсь, метод GetFiles возвращает список файлов, но не каталоги. Список в вопросе подсказывает мне, что результат также должен включать папки. Если вам нужен более настраиваемый список, вы можете попробовать рекурсивно вызывать GetFiles и GetDirectories. Попробуйте это:

Совет. Вы можете использовать классы FileInfo и DirectoryInfo, если вам нужно проверить какой-либо конкретный атрибут.

Я использую следующий код с формой, имеющей 2 кнопки: одну для выхода и другую для запуска. Диалоговое окно браузера папок и диалоговое окно сохранения файла. Код указан ниже и работает в моей системе Windows10 (64):


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

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

вывод функции (содержимое папки 5 исключено из-за ограничения уровня, а содержимое папки 3 исключено, поскольку оно находится в массиве excludeFolders):


Поздний ответ, но я думаю, что кому-то это может быть полезно. Стартер итеративной версии на основе стека с поддержкой обработки ошибок и возвратом относительных путей:



Это также неправильно, так как это не возвращает никаких каталогов (как указано в вопросе), а только фактические файлы.

Если у вас нет доступа к подпапке внутри дерева каталогов, Directory.GetFiles останавливается и создает исключение, в результате чего в принимающей строке[].

Он обрабатывает исключение внутри цикла и продолжает работать до тех пор, пока не будет пройдена вся папка.


логичным и упорядоченным способом:

конечно, сделал это, но это должно быть понятно, это простая циклическая рекурсия по всем каталогам и файлам

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


При этом вы можете просто запустить их и выбрать подпапку при запуске консоли

и это патч для экспорта XML

Пожалуйста, попробуйте приведенный ниже код, чтобы прочитать все каталоги и подкаталоги с файлами

Метод "ReadDirectories" вызывается до тех пор, пока не будет просканирован последний каталог.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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