Как вы получаете подробности из вывода команды locate?

Когда я запускаю команду ls -l, я получаю информацию о файлах в текущем каталоге, таких как разрешения, владелец, группа, размер файла.

Есть ли способ получить те же подробности, а не только местоположение файла, когда я запускаю locate?

7
задан 28 December 2011 в 22:44

3 ответа

База данных locate не содержит информации, кроме имен, поэтому вы должны запустить какой-то другой инструмент, например ls, на выходе locate

lsloc() {
  locate "$@" | 
    while read -r name; do
      ls -ld "$name"
    done
}
lsloc pattern
0
ответ дан 28 December 2011 в 22:44

Передать вывод от locate до xargs (добавив ls -l в качестве параметров к xargs). Это позволяет вам использовать любые опции, которые вам нужны, с любой командой. Кроме того, передавая опцию -0 (тире-ноль) обеим командам, вы также защищаете от непреднамеренных интерпретаций пробелов или новых строк в именах файлов. Например, чтобы получить подробную информацию обо всех файлах .iso в моей системе:

locate -0 -r '.*.iso | xargs -0 ls -l
0
ответ дан 28 December 2011 в 22:44

Используйте подоболочку

ls -l "`locate -b 'search_pattern'`"

Или

ls -lh "$(locate -b 'search_pattern')"

Вы можете добавить функцию в ~ / .bashrc, если хотите

function lsloc () { ls -l "$(locate -b "$1") ;}

Затем вы [ 117]

lsloc "search pattern"
0
ответ дан 28 December 2011 в 22:44

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

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