Я провел небольшой поиск в Интернете и пытаюсь найти способ рекурсивного вывода списка всех файлов с указанием их абсолютного пути и разрешений. Я хочу сделать это так , что я могу grep
что я хочу, так что , когда я запускаю команду, я могу получить только совпадающие файлы, их права, и их полные пути, как:
<search command> | grep file.name
Выход:
/home/current/Desktop/file.name
/etc/program/src/file.name
Я бы предпочел использовать ls
потому что он самый быстрый, и я бы набрал:
ls -alR $PWD/
Но это не показывает путь к файлу, так что, если я grep
'отредактировал вывод, то я бы увидел права доступа к файлу, но не каталог, из которого он возник.
Я могу использовать ls
интегрированный с find
и grep
чтобы получить вывод в том формате, который мне нужен, и я мог бы использовать что-то вроде этого:
ls -ault `find $PWD/ -type f` | grep file.name
Но это очень медленно, я полагаю, потому что на самом деле работают две команды.
Если я просто использую find
без ls
или grep
, то он пойдет быстрее, но набрать:
find $PWD/ -type f -name file.name -printf '%M %u %g %s\t%a\t%p\r\n'
Это даст мне хороший формат (он также включает пользователя, группу, размер и дату последнего доступа, которые полезны). Тем не менее, это тонна для ввода, и это, конечно, не так быстро, как использование ls
с grep
.
Есть ли более быстрый способ сделать то, что я пытаюсь сделать, чем использовать find
?