Узнать полный путь к файлу
Приветствую Сообщество!
Для создания загрузочной флешки при помощи dd нужен путь к образу.
Образ находится в папке /home/vaio/Загрузки
Стало интересно, как узнать путь через терминал? Нашел несколько команд, например, pwd
pwd debian-live-8.5.0-amd64-lxde-desktop.iso
Прошу подсказать с помощью какой команды можно через терминал узнать полный путь к файлу.
Если указывать такой путь в dd, то на выходе получаю Нет такого файла или каталога
потому, что файл находится в /home/vaio/Загрузки/debian-live-8.5.0-amd64-lxde-desktop.iso, а не в /home/vaio/debian-live-8.5.0-amd64-lxde-desktop.iso как ты написал. Ты либо вывод перепечатывай правильно, либо копируй, либо используй подстановку команд:
find или locate
find / -type f -name ‘debian-live-8.5.0-amd64-lxde-desktop.iso’ -exec dd if=<> of=. ;\
kostik87 , спасибо за ответ!
Ты либо вывод перепечатывай правильно, либо копируй,
Я и копировал вывод.
Вот это интересно. Буду знать.
только непонятно зачем тебе полный путь, если ты набираешь просто
readlink -m debian-live-8.5.0-amd64-lxde-desktop.iso
Так я думал, что таким образом узнаю, где находится искомый образ.
Как надо было набрать, чтобы узнать путь?
то следовательно ты уже находишься в /home/vaio/Загрузки, тебе достаточно писать
dd if=debian-live-8.5.0-amd64-lxde-desktop.iso of=.
Когда я действительно находился в папке, где лежит образ, то все получилось.
Т.е. образ на флешку записал.
Но все же вопрос остается открытым:
Как через терминал узнать путь к произвольному файлу, зная его название?
Как через терминал узнать путь к произвольному файлу, зная его название?
тебе уже ответили, man find
Как через терминал узнать путь к произвольному файлу, зная его название?
find / -type f -name ‘название’
в дополнение к find, есть шустрый mlocate, который ищет по индексу.
Ребята, благодарю за ответы!
И прошу еще немного терпения и внимания.
find / -type f -name debian-live-8.5.0-amd64-lxde-desktop.iso
Вот такой вывод.
sudo find / -type f -name debian-live-8.5.0-amd64-lxde-desktop.iso 2>/dev/null
Чтобы искать по индексу — нужно его сначала построить, а потом регулярно обновлять. Есть лишние иопсы? 🙂
Обновляется индекс по крону.
Чтобы найти файл с помощью find, обычно тратится больше иопсов, чем тратится на обновление базы mlocate.
Я принимаю бессилие перед этой задачей.
Буду делать как раньше и экономить иопсы.
Всем благодарен!
Источник
Путь к файлу в Linux
Все файлы в Linux имеют определенный адрес в файловой системе, с помощью которого мы можем получить к ним доступ с помощью файлового менеджера или консольных утилит. Это довольно простая тема, но у многих новичков с этим возникают трудности.
В сегодняшней небольшой заметке мы рассмотрим что такое путь к файлу Linux, каким он может быть, как правильно его писать и многое другое. Если раньше у вас возникали с этим трудности, то после прочтения статьи все станет полностью понятно.
Пути файлов в Linux
Файловая система Linux очень сильно отличается от Windows. Мы не будем рассматривать ее структуру, это было сделано ранее. Мы сосредоточимся на работе с файлами.
Самое главное отличие, в том что адрес файла начинается не с диска, например, C:\ или D:\ как это происходит в Windows, а с корня, корневого системного каталога, к которому подключены все другие. Его адрес — /. И тут нужно сказать про адреса. Пути файлов linux используют прямой слеш «/» для разделения каталогов в адресе, и это отличается от того, что вы привыкли видеть в Windows — \.
Например, если в Windows полный путь к файлу на рабочем столе выглядел C:\Users\Sergiy\Desktop\ то в путь файла в linux будет просто /home/sergiy/desktop/. С этим пока все просто и понятно. Но проблемы возникают дальше.
В операционной системе Linux может быть несколько видов путей к файлу. Давайте рассмотрим какие бывают пути в linux:
- Полный, абсолютный путь linux от корня файловой системы — этот путь вы уже видели в примере выше, он начинается от корня «/» и описывает весь путь к файлу;
- Относительный путь linux — это путь к файлу относительно текущей папки, такие пути часто вызывают путаницу.
- Путь относительно домашний папки текущего пользователя. — путь в файловой системе, только не от корня, а от папки текущего пользователя.
Рассмотрим теперь подробнее как выглядят эти пути в linux, а также разберем несколько примеров, чтобы было окончательно понятно. Для демонстрации будем пользоваться утилитой ls, которая предназначена для просмотра содержимого каталогов.
Например, у нас есть такой каталог в домашней папке с четырьмя файлами в нем:
Вот так будет выглядеть полный путь linux к одному из файлов:
Это уже относительный путь linux, который начинается от домашней папки, она обозначается
/. Дальше вы уже можете указывать подпапки, в нашем случае tmp:
Ну или путь файла в linux, относительно текущей папки:
В каждой папке есть две скрытые ссылки, мы сможем их увидеть с помощью ls, выполнив ее с параметром -a:
Первая ссылка указывает на текущую папку (.), вторая (..) указывает на папку уровнем выше. Это открывает еще более широкие возможности для навигации по каталогам. Например, чтобы сослаться на файл в текущей папке можно использовать конструкцию:
Это бесполезно при просмотре содержимого файла. Но очень важно при выполнении программы. Поскольку программа будет сначала искаться в среде PATH, а уже потом в этой папке. А потому, если нужно запустить программу, которая находится в текущей папке и она называется точно также как и та что в каталоге /bin, то без явной ссылки что файл нужно искать в текущей папке ничего не получится.
Вторая ссылка вам позволяет получить доступ к файлам в папке выше текущей. Например:
Такие конструкции могут довольно часто встречаться при компиляции программ. Все эти символы и пути файлов linux вы можете применять не только в терминале, но и в любом файловом менеджере, что может быть очень удобно.
Но терминал Linux предоставляет еще более широкие возможности. Вы можете использовать простые символы замены прямо в адресах файлов или каталогов. Например, можно вывести все файлы, начинающиеся на f:
Или даже можно искать не только в папке tmp, а в любой подпапке домашней папки:
И все это будет работать, возможно, это не всегда нужно и практично. Но в определенных ситуациях может очень сильно помочь. Эти функции реализуются на уровне оболочки Bash, поэтому вы можете применять их в любой команде. Оболочка смотрит сколько файлов было найдено и для каждого из них вызывает команду.
Выводы
Вот и все. Теперь вы знаете все что необходимо, чтобы не только правильно написать путь к файлу linux, но и выполнять более сложные действия, например, поиск файлов или навигация по каталогам с помощью команды cd. Если у вас остались вопросы, спрашивайте в комментариях!
Источник
Переменная PATH в Linux
Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС Linux спроектирована так, что исполняемые и связанные с ними файлы программ распределяются по различным специализированным каталогам. Например, библиотеки устанавливаются в /lib или /usr/lib, конфигурационные файлы в /etc, а исполняемые файлы в /sbin/, /usr/bin или /bin.
Таких местоположений несколько. Откуда операционная система знает где искать требуемую программу или её компонент? Всё просто — для этого используется переменная PATH. Эта переменная позволяет существенно сократить длину набираемых команд в терминале или в скрипте, освобождая от необходимости каждый раз указывать полные пути к требуемым файлам. В этой статье мы разберёмся зачем нужна переменная PATH Linux, а также как добавить к её значению имена своих пользовательских каталогов.
Переменная PATH в Linux
Для того, чтобы посмотреть содержимое переменной PATH в Linux, выполните в терминале команду:
На экране появится перечень папок, разделённых двоеточием. Алгоритм поиска пути к требуемой программе при её запуске довольно прост. Сначала ОС ищет исполняемый файл с заданным именем в текущей папке. Если находит, запускает на выполнение, если нет, проверяет каталоги, перечисленные в переменной PATH, в установленном там порядке. Таким образом, добавив свои папки к содержимому этой переменной, вы добавляете новые места размещения исполняемых и связанных с ними файлов.
Для того, чтобы добавить новый путь к переменной PATH, можно воспользоваться командой export. Например, давайте добавим к значению переменной PATH папку/opt/local/bin. Для того, чтобы не перезаписать имеющееся значение переменной PATH новым, нужно именно добавить (дописать) это новое значение к уже имеющемуся, не забыв о разделителе-двоеточии:
Теперь мы можем убедиться, что в переменной PATH содержится также и имя этой, добавленной нами, папки:
Вы уже знаете как в Linux добавить имя требуемой папки в переменную PATH, но есть одна проблема — после перезагрузки компьютера или открытия нового сеанса терминала все изменения пропадут, ваша переменная PATH будет иметь то же значение, что и раньше. Для того, чтобы этого не произошло, нужно закрепить новое текущее значение переменной PATH в конфигурационном системном файле.
В ОС Ubuntu значение переменной PATH содержится в файле /etc/environment, в некоторых других дистрибутивах её также можно найти и в файле /etc/profile. Вы можете открыть файл /etc/environment и вручную дописать туда нужное значение:
sudo vi /etc/environment
Можно поступить и иначе. Содержимое файла .bashrc выполняется при каждом запуске оболочки Bash. Если добавить в конец файла команду export, то для каждой загружаемой оболочки будет автоматически выполняться добавление имени требуемой папки в переменную PATH, но только для текущего пользователя:
Выводы
В этой статье мы рассмотрели вопрос о том, зачем нужна переменная окружения PATH в Linux и как добавлять к её значению новые пути поиска исполняемых и связанных с ними файлов. Как видите, всё делается достаточно просто. Таким образом вы можете добавить столько папок для поиска и хранения исполняемых файлов, сколько вам требуется.
Источник
Определите ваш текущий рабочий каталог в Linux с помощью команды pwd
Главное меню » Операционная система Linux » Определите ваш текущий рабочий каталог в Linux с помощью команды pwd
Что такое текущий рабочий каталог
Текущий рабочий каталог – это каталог, в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
По умолчанию при входе в систему Linux в качестве текущего рабочего каталога указывается домашний каталог. Чтобы изменить рабочий каталог, используйте команду cd. Например, чтобы изменить текущий рабочий каталог /tmp, введите:
В некоторых дистрибутивах Linux, или если у вас настроено приглашение bash или zsh, путь к вашему текущему рабочему каталогу может быть показан в приглашении оболочки.
Команда pwd
Команда pwd обозначает печать рабочего каталога. Это одна из самых основных и часто используемых команд в Linux. После выполнения команда напечатает полный путь вашего текущего рабочего каталога.
pwd это оболочка, встроенная в большинство современных оболочек, таких как bash и zsh. Его поведение немного отличается от автономного исполняемого файла /bin/pwd. Вы можете использовать type -a для отображения всех мест, содержащих pwd.
Как видно из вывода ниже, встроенная оболочка имеет приоритет над автономным исполняемым файлом и будет использоваться всякий раз, когда вы печатаете pwd. Если вы хотите использовать автономную команду pwd, вам нужно будет указать полный путь к бинарному файлу /bin/pwd.
Как найти свой текущий рабочий каталог
Чтобы узнать, в каком каталоге вы сейчас находитесь, введите pwd в свой терминал:
Команда отобразит путь вашего текущего рабочего каталога:
Команда выполняет печать PWD переменной среды. Вы получите тот же вывод, если вы наберете:
Команда pwd может принимать только два аргумента:
- -L ( –logical) – Показать значение переменной $PWD. По умолчанию pwd ведет себя так, как будто опция -L указана.
- -P ( –physical) – Показать физический каталог, без каких-либо символических ссылок
Чтобы лучше проиллюстрировать, как работает опция -P, мы создадим каталог и символическую ссылку, которая будет указывать на каталог:
Теперь, если вы перейдете в каталог /tmp/symlink и введете pwd в свой терминал:
Вывод покажет, что ваш текущий рабочий каталог /tmp/symlink.
Если вы запускаете ту же команду, используя опцию -P:
Ваш текущий рабочий каталог – /tmp/directory это каталог, на который указывает символическая ссылка.
Заключение
К настоящему времени вы должны хорошо понимать, что является текущим рабочим каталогом и как использовать команду pwd, чтобы найти ваш текущий рабочий каталог.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник