Jest to prawdopodobnie łatwe, ale nie mogę tego rozgryźć i praktycznie nie można go przeszukiwać. W hierarchii folderów mam dokładnie jeden plik typu xyz. Chcę znaleźć ten plik i otworzyć go za pomocą polecenia terminalu.
find . -name *.xyz
Spowoduje to zwrócenie szukanego pliku. Jak teraz otworzyć to automatycznie, bez wpisywania nazwy?
find . -name *xyz | open
To nie działa Mówi, że nie znalazł polecenia otwarcia.
Odpowiedzi:
@retracile jest poprawny. Musisz to otworzyć „czymś”. Jednak wolę używać exec zamiast xargs.
find . -name '*.xyz' -exec cat {} \;
to zwróci
cat fileFound.xyz; cat fileFound2.xyx;
itp., jednak spodziewasz się znaleźć tylko jeden plik.zwróć uwagę, że zmiana
\;
na+
zwróci wcat fileFound.xyz fileFound2.xyz
zależności od przypadku, później może być preferowanym wyborem.po więcej informacji skierowałbym cię do tego pytania
źródło
Polecenie, którego szukasz, nazywa się
xdg-open
Spróbuj wykonać polecenie:
źródło
Musisz wiedzieć, jakiego programu chcesz użyć do otwarcia pliku. Jeśli jest to obraz, możesz użyć gwenview lub czegoś takiego.
Pobieranie danych wejściowych i przekształcanie ich w argumenty odbywa się za pomocą xargs. I będziesz chciał uciec od tej wieloznacznej ...
I do obsługi spacji w nazwach plików ...
źródło
Jak zauważyli inni, twoje pytanie nie jest wystarczająco szczegółowe, aby udzielić jasnej odpowiedzi. Zgaduję więc o innym możliwym znaczeniu: Jeśli masz na myśli, że chcesz uruchomić go jako plik wykonywalny (co oznacza, że twój program jest plikiem wykonywalnym), powiedz powłoce, że chcesz zastąpić dane wyjściowe polecenia find jako część wiersza polecenia :
źródło
Jeśli chcesz otworzyć wszystkie pliki znalezione przez
find
na osobnych kartach w jednym wystąpieniu vima, możesz to zrobić:źródło