Вопрос: cat command linux для сохранения результатов других команд


Этот вопрос может быть глупым и супер простым для linux connaisseurs, но мне просто интересно, например, Я хочу использовать команду> find для поиска файла и отправки результатов в текстовый файл, кто-нибудь знает, как я могу это сделать? Я использую lucid lynx btw


4
2017-11-26 06:07


Источник




Ответы:


Вы хотите использовать перенаправление для этого.

find -somecriteria > somefile.txt

10
2017-11-26 06:09



Как мы можем искать файл, такой как saveuser.php, на весь сервер в Linux, это та же самая команда будет запущена на ubuntu?
@Rahul: все системы GNU / Linux и BSD имеют find доступных в той или иной форме. - Ignacio Vazquez-Abrams
Как мы можем искать файл, например saveuser.php, на весь сервер в ubuntu
find $doc_root -name saveuser.php - если вы не знаете doc_root своего веб-сервера, используйте / - glenn jackman
Вы также можете посмотреть команду «tee», которая будет записывать ее в файл и одновременно печатать на stdout. - Bron Gondwana


ЕСЛИ вы просто хотите найти определенные файлы. Как сказал Игнасио:

find -somecriteria > somefile.txt

Если вы хотите найти определенные файлы и вывести содержимое этих файлов.

find -somecriteria -exec cat {} + > somefile.txt

1
2017-11-26 06:18



Спасибо, это работает, если файл существует, но если он doesnt, то он не сохраняет сообщение, вы знаете, как это сделать?
Извините, я не понял. u означает команду верхнюю или нижнюю?


Вы можете запускать команды с помощью Python, используя подпроцесс модуль и сохранить результаты в текстовых файлах. Перенаправление также работает (как показано на рисунке @Ignacio), но содержимое файла будет перезаписано каждый раз при запуске команды.


0
2017-11-26 06:13



Если он хочет добавить файл, он может использовать >> оператор.


Кажется, вам нужно найти файл по FILENAME, а не по другим критериям.

Для этого есть намного лучшая утилита, чем «найти», называемую «locate». Он использует базу данных локации для поиска файлов по имени, поэтому она намного быстрее, чем поиск по файловой системе.

Во-первых, запустите 'updatedb' как root для обеспечения актуальности базы данных локации и, возможно, добавьте задание 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

0
2017-11-27 06:37





Да, вы можете использовать перенаправление:

$ find . > some_file_name.txt
$ cat some_file_name.txt

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


0
2017-11-26 06:11



Это не труба. - Ignacio Vazquez-Abrams
Я думаю, что это :-) Возможно, я ошибаюсь <br/>google.com.au/...
Вы. С первого удара, полученного вашим связанным поиском: «Вы заметите, что труба определяется | символ - не верхний регистр i или номер один, а вертикальная полоса. ", как раз перед тем, как он представляет трубы как лучший способ делать что-то, чем использовать перенаправление (с <а также >), чтобы записать один вывод команды в файл, а затем прочитать этот файл в качестве ввода другой команды. - Dave Sherohman