Когда мы работаем с командной оболочкой bash в операционной системе Linux, часто возникает необходимость обращаться к файлам и папкам. Одним из способов указания пути к файлу является использование относительного пути.
Относительный путь — это путь, начинающийся не с корневой папки, а с текущей рабочей папки. Для указания имени файла относительно папки рекомендуется использовать следующую схему:
Путь/к/папке/имя_файла
Здесь Путь/к/папке — это путь к папке, в которой находится файл, а имя_файла — имя самого файла. Важно учесть, что символы в пути разделяются косой чертой (или обратной косой чертой в случае Windows), а имена файлов в Linux чувствительны к регистру.
Получить имя файла в bash shell
В bash shell можно получить имя текущего файла или имя файла относительно папки с помощью различных команд и переменных.
Чтобы получить имя текущего файла, можно воспользоваться переменной $0
. Она содержит полный путь и имя текущего исполняемого файла. Если вам нужно только имя без пути, можно использовать команду basename
:
$ basename $0
Если вам нужно получить имя файла относительно папки, вы можете воспользоваться командой dirname
. Она позволяет получить только путь к файлу без имени, и затем вы можете использовать команду basename
для получения имени файла:
$ dirname path/to/file/file.txt | xargs basename
Таким образом, вы получите имя файла file.txt
.
Также можно использовать команду find
для поиска файла и получения его имени. Например, чтобы получить имя файла file.txt
в текущей папке, можно использовать следующую команду:
$ find . -name "file.txt" -exec basename {} \;
Эти методы позволяют получить имя файла в bash shell в различных сценариях использования. Выберите подходящий для вашей задачи и используйте его.
Синтаксис команды
Для указания имени файла относительно папки в bash shell используется следующий синтаксис:
папка/имя_файла
— указывает на файлимя_файла
в текущей папкепапка
.../папка/имя_файла
— указывает на файлимя_файла
в папкепапка
, находящейся в родительской папке текущей папки.../../папка/имя_файла
— указывает на файлимя_файла
в папкепапка
, находящейся в папке, находящейся в родительской папке текущей папки.- И так далее…
Таким образом, при указании имени файла относительно папки в bash shell, можно использовать путь к файлу, начиная с текущей папки и перемещаясь по дереву папок, используя символ /
для разделения имени папки и имени файла.
Пример использования команды
Допустим, у нас есть папка с названием «Документы», в которой находится файл «отчет.txt». Нужно получить путь к файлу относительно папки «Документы».
Для этого мы можем использовать команду basename. Пример использования команды:
$ basename /home/user/Документы/отчет.txt
Результат выполнения команды будет:
отчет.txt
Таким образом, команда basename возвращает имя файла отчет.txt без пути к нему.
Расположение файла относительно папки
В bash shell можно получить путь к файлу относительно текущей папки с помощью команды pwd.
Команда pwd возвращает абсолютный путь к текущей папке, то есть путь, начинающийся с корневой папки.
Чтобы получить относительный путь к файлу, необходимо использовать команду find. Команда find позволяет искать файлы и папки в директории и ее поддиректориях.
Пример использования команды find для поиска файла по имени:
find . -name «filename.txt»
В данном случае . означает текущую папку, -name указывает на поиск по имени файла, а «filename.txt» является искомым именем файла.
После выполнения команды find будет выведен относительный путь к искомому файлу относительно текущей папки.