62просмотров
5 декабря 2025 г.
Score: 68
В Linux есть несколько надёжных способов узнать путь к файлу — в зависимости от того, знаете ли вы имя файла, ищете ли его по содержимому, или просто хотите узнать полный путь к уже известному файлу/каталогу. Вот основные варианты: 🔹 1. Полный путь к текущему файлу/каталогу
Если файл уже у вас «в руках» (например, вы в его директории или знаете относительный путь):
# Абсолютный путь к файлу (даже если он символическая ссылка)
realpath имя_файла # Или (если realpath недоступен — например, в минимальных системах):
readlink -f имя_файла # Пример:
$ realpath ./config.txt
/home/user/project/config.txt ✅ realpath — предпочтительнее: корректно разрешает симлинки и нормализует путь (/../, //, . и т.д.). 🔹 2. Найти файл по имени в системе
Если вы не знаете, где файл лежит, но знаете его имя (или часть):
# Ищет во всей файловой системе (может быть медленно; требует прав)
sudo find / -type f -name "имя_файла" # Ищет только в домашней директории
find ~/ -type f -name "имя_файла" 2>/dev/null # Используйте для частичного совпадения:
find /var/log -name ".log" ⚠️ 2>/dev/null подавляет ошибки доступа (например, «Permission denied»). 🔹 3. Быстрый поиск (если база locate актуальна)
# Сначала обновите базу (необязательно каждый раз, но раз в день — полезно)
sudo updatedb # Затем ищите:
locate имя_файла
# или частично:
locate config | grep ".conf$" ✅ Очень быстро. ❌ Не находит только что созданные файлы — пока не обновлена база (updatedb). 🔹 4. Где находится исполняемый файл (команда)?
which команда # ищет в $PATH
whereis команда # ищет бинарник, мануалы, исходники
type команда # показывает, что это: алиас, функция, builtin или путь
command -v команда # POSIX-совместимый способ (лучше для скриптов) Пример:
$ which python3
/usr/bin/python3 $ type ls
ls is aliased to `ls --color=auto' 🔹 5. Полный путь к текущей директории
pwd # печатает текущий рабочий каталог
echo $PWD # переменная окружения — то же самое 💡 Советы:
- Если файл в текущей папке, и вы хотите его полный путь — просто: realpath . # или для файла: realpath ./myfile.txt - В скриптах лучше использовать realpath или readlink -f, а не pwd + имя — это надёжнее при симлинках.
- Хотите узнать, откуда запущен скрипт? SCRIPT_DIR=$(dirname "$(realpath "$0")") #Linux #СистемныйАдминистратор #КоманднаяСтрока #find #0realpath #Bash #LinuxTips #ТрюкиВКонсоли