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

Odpowiedzi:


10

Chcesz użyć przekierowanie dla tego.

find -somecriteria > somefile.txt

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

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.


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

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 >.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.