Проблема с перенаправлением вывода find в файл - PullRequest
6 голосов
/ 26 октября 2010

Я пытаюсь поместить результат команды поиска в текстовый файл в оболочке Unix Bash

Использование:

find ~/* -name "*.txt" -print > list_of_txt_files.list

Однако list_of_txt_files.list остается пустым, и у менячтобы убить находку, чтобы она вернула командную строку.У меня есть много txt файлов в моем домашнем каталоге

В качестве альтернативы Как сохранить результат команды поиска в текстовый файл из командной строки.Я думал, что это должно работать

Ответы [ 2 ]

10 голосов
/ 26 октября 2010

Первое, что я хотел бы сделать, это использовать одинарные кавычки (некоторые оболочки будут расширять символы подстановки, хотя я не думаю, что bash, по крайней мере, по умолчанию), а первый аргумент find - это каталог , а не список файлов:

find ~ -name '*.txt' -print > list_of_txt_files.list

Кроме того, это может занять много времени, хотя я не могу себе представить, чтобы у кого-то было такое много текстовых файлов (вы говорите, что у вас их много, но это должно быть довольно массивно, чтобы замедлить вниз find). Попробуйте сначала без перенаправления и посмотрите, что он выводит:

find ~ -name '*.txt' -print
2 голосов
/ 19 февраля 2015

Вы можете перенаправить вывод в файл и консоль вместе, используя tee.

find ~ -name '*.txt' -print | tee result.log

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

...