Этот вопрос может быть глупым и очень простым для знатоков Linux, но мне просто интересно, например, я хочу использовать команду> find для поиска файла и отправки результатов в текстовый файл, любой знает, как я могу это сделать ? Я использую осознанную рысь, кстати
5 ответов
Вы хотите использовать перенаправление для этого.
find -somecriteria > somefile.txt
Если вы просто хотите найти определенные файлы. Игнасио ответил:
find -somecriteria > somefile.txt
Если вы хотите найти определенные файлы и вывести содержимое этих файлов.
find -somecriteria -exec cat {} + > somefile.txt
Кажется, вам нужно найти файл по FILENAME, а не по каким-то другим критериям.
Для этого есть гораздо лучшая утилита, чем 'find', называемая 'locate'. Он использует базу данных locate для поиска файлов по имени, поэтому это намного быстрее, чем поиск по файловой системе.
Во-первых, запустите «updatedb» от имени пользователя root, чтобы убедиться, что база данных locate обновлена, и, возможно, добавьте задание CRON, которое будет выполняться ночью, если его еще нет.
Затем используйте «locate filename» или «locate -r regexp», чтобы найти файлы.
Я упоминаю второй вариант, потому что 'locate abc.log' найдет, например, abc.log.1 и abc.log.1.gz и все остальное совпадает. Таким образом, 'locate -r abc.log\$' в этом случае найдет ТОЛЬКО файлы с именем abc.log
Наконец, как уже упоминалось, чтобы поместить полученный результат команды в файл, используйте> как в:
locate -r \^abc.log\$ > /home/me/all.abc.log.files
Да, вы можете использовать перенаправление:
$ find . > some_file_name.txt
$ cat some_file_name.txt
Символ >
в конце команды перенаправляет любой вывод, который обычно идет на консоль, вместо этого записывается файл, имя которого следует после >
.
Вы можете запускать команды через Python, используя его модуль подпроцесса , и сохранять результаты в текстовых файлах. Перенаправление также работает (как показано @Ignacio), но содержимое файла будет перезаписываться при каждом запуске команды.