Как вы получаете подробности из вывода команды locate?
Когда я бегу ls -l Команда Я получаю информацию о файлах в текущем каталоге, таких как права доступа, владелец, группа, размер файла.
Есть ли способ получить те же данные, а не только местоположение файла при запуске locate?
3 ответа
locate База данных не содержит информации, кроме имен, поэтому вы должны запустить какой-то другой инструмент, например lsна locate выход
lsloc() {
locate "$@" |
while read -r name; do
ls -ld "$name"
done
}
lsloc pattern
Труба на выходе locate в xargs (добавление ls -l в качестве параметров для xargs). Это позволяет вам использовать любые опции, которые вам нужны, с любой командой. Также передавая -0 (тире-ноль) опция для обеих команд, вы также защищаете от непреднамеренного интерпретации пробелов или новых строк в именах файлов. Например, чтобы получить подробную информацию обо всех файлах.iso в моей системе:
locate -0 -r '.*.iso$' | xargs -0 ls -l
Используйте подоболочку
ls -l "`locate -b 'search_pattern'`"
Или же
ls -lh "$(locate -b 'search_pattern')"
Вы можете добавить функцию в ~/.bashrc, если хотите
function lsloc () { ls -l "$(locate -b "$1") ;}
Ты тогда
lsloc "search pattern"