Как получить полное (с путём относительно /) имя файла в одну команду?
Бывает, работаешь в консоли, и нужно скопировать /полный/путь/к/файлу, например, чтобы в соседней консоли использовать его как аргумент для 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 - у них там своя атмосфера
Комментариев нет:
Отправить комментарий