Страницы

Поиск по вопросам

четверг, 18 октября 2018 г.

Как получить полное имя файла в одну команду?

Как получить полное (с путём относительно /) имя файла в одну команду?
Бывает, работаешь в консоли, и нужно скопировать /полный/путь/к/файлу, например, чтобы в соседней консоли использовать его как аргумент для scp. Приходится вызывать pwd, чтобы скопировать путь к текущей папке, и ls, чтобы скопировать имя файла. Можно ли это сделать в одну команду?


Ответ

readlink -f покажет /полный/путь/к/файлу.ext, дополнительно "раскрыв" все символические ссылки и заменив их на "канонические" пути. Пример показателен:
$ cd /tmp $ mkdir foo $ touch foo/bar.ext $ ln -s foo/bar.ext baz.ext $ readlink -f foo/bar.ext /tmp/foo/bar.ext $ readlink -f baz.ext /tmp/foo/bar.ext
Здесь /tmp/baz.ext является симлинком на /tmp/foo/bar.ext
Предложенное решение работает в Linux и FreeBSD, но не работает в Mac OS - у них там своя атмосфера

Комментариев нет:

Отправить комментарий