Показать полный путь к файлу в терминале [дубликат]

Если:

var="Volume: 0: 100% 1: 100%"

, то:

, чтобы извлечь первый 100, вы можете использовать:
temp=$(awk -F": |%" '{print $3}' <<< "$var")
для извлечения последнего 100 вы можете использовать:
temp=$(awk -F": |%" '{print $5}' <<< "$var")
для извлечения обоих 100 вы можете использовать:
temp=$(awk -F": |%" '{print $3, $5}' <<< "$var")
1
задан 13 January 2017 в 17:29

3 ответа

Если вы не знаете, где находится файл, используйте команду find.

find / -name MY_FILE

Он напечатает полный путь MY_FILE, начиная с /.

или вы можете использовать find $PWD -name MY_FILE для поиска в текущем каталоге.

Если вы знаете местоположение MY_FILE, перейдите в папку containg MY_FILE и используйте команду

pwd, чтобы напечатать полный путь к MY_FILE. [!d6 ]

4
ответ дан 23 May 2018 в 02:28
  • 1
    Для поиска в текущем каталоге вы также можете использовать find $PWD -name вместо find . -name, и все результаты будут содержать реальный путь вместо символа ./. – George Vasiliou 13 January 2017 в 17:32
  • 2
    @GeorgeVasiliou Спасибо за отзыв. Я уточню свой ответ. – Rahul 13 January 2017 в 17:35

Используйте readlink с флагом -e. Он не только дает вам полный путь к файлу, но также представляет реальный путь к symlinks

$ readlink -e ./out.txt                                                                                                  
/home/xieerqi/out.txt

Я лично использую его в своих собственных скриптах всякий раз, когда необходимо получить полный путь к файлу

4
ответ дан 23 May 2018 в 02:28

Вот функция, показывающая пути к файлам, вам может понадобиться только часть «fpath = ....»?

pathtofile () { : "gives full path to files given in parameters.";
  for f in "$@"; do
    fpath="$(
      cd -P "$(dirname "$f")" && \
      printf '%s\n' "$(pwd)/$(basename "${f}")" || \
      { echo "__An error occured while determining path to file: '${f}'."\
             "Maybe your user can't access its directory, most likely?__"
      }  )"
    printf "Full path to: %s\n          is: %s\n" "'${f}'" "'${fpath}'";
  done
}

Использовать с:

pathtofile   file1  ../file2  /some/pathwithsymlink/file3
[d2 ] Важная часть: cd -P somedir: показывает полный «реальный» путь к somedir.

0
ответ дан 23 May 2018 в 02:28

Другие вопросы по тегам:

Похожие вопросы: