Bash перебирает файлы в каталоге

Bash Loop Through Files Directory



В Ubuntu, включая Bash, циклы позволяют применять операции к нескольким файлам. Цикл является наиболее эффективным, поскольку он позволяет пользователю многократно применять одну и ту же логику к элементу, используя небольшую строку кода.

Чтобы понять концепцию перебора файлов в каталоге, вам потребуется доступ к приложению и службам Ubuntu. Когда у вас есть некоторые привилегии, вы можете работать только с файлами и каталогами.







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



$Баш--версия



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





Самый первый шаг - создать каталог. Мы взяли примерное имя каталога abc. Создайте каталог, выполнив команду.

$mkdirabc



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

$CDabc

После перехода в каталог создайте несколько файлов с помощью сенсорной команды.

$трогатьfile1.txt

Для создания файла в Ubuntu используется множество методов. Помимо команды touch, здесь мы использовали команду echo, чтобы создать файл и добавить в него содержимое вместе с помощью одной команды:

$выбросилLinux, убунту, Postgresql>file7.txt

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

$трогатьфайл-{1..8}.текст

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

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

$для файл в *;делать выбросил $ файл;сделано

* используется для всех файлов в этом каталоге. Это позволяет циклу for захватить все файлы. Но для большей точности вы можете добавить несколько терминов со знаком звездочки. Например, «файл- *» используется для всех файлов, которые начинаются с файла. И * .txt для получения файлов с расширениями .txt. Эти примеры мы будем использовать далее в статье.

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

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

$для файл в *;делать выбросил -2 $ файл nLinux Ubuntu> $ файл;сделано

После выполнения команды значение было введено в каждый созданный нами файл. При использовании с echo флаг «-e» сохраняет новую строку в файле. Чтобы увидеть введенные данные, вы можете перейти в каталог «abc». Теперь откройте любой текстовый файл. Файл больше не пустой.

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

$для файл в *;делать Кот $ файл;сделано

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

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

$для файл в *;делать выбросил-А также$ файл nbash программирование> $ файл;Кот $ файл;сделано

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

Каждый файл содержит одно и то же значение. Это из-за цикла for.

Мы знаем цикл для выборки данных и вставки значений и т. Д., Но цикл также используется для создания резервных копий. Эти файлы в конце имеют расширение .bak. Теперь выполните команду резервного копирования в оболочке, чтобы увидеть резервную копию каждого файла.

$для файл в *;делать cp $ файл $ файл.позади;сделано;

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

$ls- в

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

Если нам нужны только файлы jpeg. Мы будем использовать это в команде

$для файл в *.jpeg;делать выбросил $ файл;сделано

Это принесет только имена изображений.

Простая находка также может выполнять ту же функцию. Он получит все файлы с расширением .sh.

$найти. - имя*ш

Мы будем использовать ключевое слово find в цикле for.

$для файл в *;делатьнайти. Файл.*;сделано

Это перенесет все файлы в текущий каталог. У них есть расширения .bak, .jpeg, .txt. и т.п.

Теперь, если вы хотите увидеть имена всех файлов каталога и данные внутри них, это также делается с помощью цикла for.

$для файл в *;делать файл $ файл;сделано

Заключение

Перебирать файлы в любом каталоге больше не сложно, как мы знаем, используя циклы в Bash и выполняя их в операционных системах Linux. Это руководство представляет собой полное руководство по созданию, доступу и выполнению операций с каталогом с использованием цикла for.