polecenie cat linux, aby zapisać wyniki innych poleceń

4

To pytanie może być głupie i super łatwe dla koneserów linux, ale zastanawiałem się na przykład, Chcę użyć polecenia & gt; find, aby wyszukać plik i wysłać wyniki do pliku tekstowego, ktoś wie, jak mogę to zrobić? Używam lucid lynx btw

Zloy Smiertniy
źródło

Odpowiedzi:

10

Chcesz użyć przekierowanie dla tego.

find -somecriteria > somefile.txt
Ignacio Vazquez-Abrams
źródło
Jak możemy wyszukać plik taki jak saveuser.php na całym serwerze w Linuksie, czy to jest to samo polecenie, które zostanie uruchomione na ubuntu?
1
@Rahul: Wszystkie systemy GNU / Linux i BSD mają find dostępne w takiej czy innej formie.
Ignacio Vazquez-Abrams
Jak możemy wyszukać plik taki jak saveuser.php na całym serwerze ubuntu
1
find $doc_root -name saveuser.php - jeśli nie znasz doc_root swojego serwera WWW, użyj /
glenn jackman
Możesz także spojrzeć na polecenie „tee”, które zapisze go w pliku i wydrukuje na standardowe wyjście w tym samym czasie.
Bron Gondwana
1

JEŚLI chcesz po prostu znaleźć określone pliki. Jak odpowiedział Ignacio:

find -somecriteria > somefile.txt

Jeśli chcesz znaleźć określone pliki i wyświetlić zawartość tych plików.

find -somecriteria -exec cat {} + > somefile.txt
wliao
źródło
Dzięki temu działa, jeśli plik istnieje, ale jeśli nie, to nie zapisuje wiadomości, czy wiesz jak to zrobić?
Przepraszam, nie rozumiałem cię. masz na myśli polecenie wyższe lub niższe?
0

Możesz uruchomić polecenia Pythona, używając go podproces moduł i zapisz wyniki w plikach tekstowych. Przekierowanie działa również (jak pokazuje @Ignacio), ale zawartość pliku zostanie nadpisana przy każdym uruchomieniu polecenia.

rubayeet
źródło
1
Jeśli chce dołączyć do pliku, może użyć >> operator.
0

Wydaje się, że potrzebujesz znaleźć plik według FILENAME, a nie inne kryteria.

Istnieje o wiele lepsze narzędzie do tego niż dostępne „znajdź”, zwane „lokalizuj”. Używa bazy danych locate, aby znaleźć pliki według nazwy, więc jest znacznie szybszy niż wyszukiwanie w systemie plików.

Po pierwsze, uruchom polecenie „updatedb” jako root, aby upewnić się, że baza danych lokalizacji jest aktualna - i ewentualnie dodaj zadanie CRON, które będzie uruchamiane w nocy, jeśli jeszcze nie istnieje.

Następnie użyj „locate filename” lub „locate -r regexp”, aby zlokalizować pliki.

Wspominam o drugiej opcji, ponieważ „locate abc.log” znajdzie na przykład abc.log.1 i abc.log.1.gz i cokolwiek innego pasuje. Zatem „locate -r abc.log $” w tym przypadku zlokalizuje TYLKO pliki o nazwie abc.log

Wreszcie, jak już wspomniano, aby umieścić wynikowy wynik polecenia w pliku, użyj & gt; jak w:

locate -r \^abc.log\$ > /home/me/all.abc.log.files
pbr
źródło
0

Tak, możesz użyć przekierowania:

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

The > symbol na końcu polecenia przekierowuje każde wyjście, które normalnie trafia do konsoli, zamiast tego zapisuje plik, którego nazwa jest po >.

Keith John Hutchison
źródło
4
To nie jest fajka.
Ignacio Vazquez-Abrams
Myślę, że tak jest :-) Mogę się mylić & lt; br / & gt; google.com.au/…
2
Ty jesteś. Od pierwszego trafienia zwróconego przez wyszukiwanie połączone: „Zauważysz, że potok jest zdefiniowany przez | symbol - nie jest wielką literą ani numerem jeden, ale pionową kreską. ”, tuż przed prezentowaniem rur jako lepszego sposobu robienia rzeczy niż za pomocą przekierowania < i > ) napisać wyjście jednego polecenia do pliku, a następnie odczytać ten plik jako dane wejściowe do innego polecenia.
Dave Sherohman