Istnieje wiele rodzajów obrazów graficznych w tym ogromnym archiwum, takim jak .jpg, .gif, .png, itp. Nie znam wszystkich typów. Czy istnieje sposób "find", aby móc wyświetlić wszystkie grafiki bez względu na nazwę rozszerzenia kropki? Dzięki!Linux find: Lista wszystkich plików graficznych z findem?
Odpowiedz
To powinno załatwić sprawę
find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'
Przykâadowa:
./navigation/doc/Sphärische_Trigonometrie-Dateien/bfc9bd9372f650fd158992cf5948debe.png: PNG image
./navigation/doc/Sphärische_Trigonometrie-Dateien/6564ce3c5b95ded313b84fa918b32776.png: PNG image
./navigation/doc/subr_1.jpe: JPEG image
./navigation/doc/Astroanalytisch-Dateien/Gamma.gif: GIF image
./navigation/doc/Astroanalytisch-Dateien/deltaS.jpg: JPEG image
./navigation/doc/Astroanalytisch-Dateien/GammaBau.jpg: JPEG image
Czy istnieje podobne podejście, które można zastosować w przypadku wideo? Wygląda na to, że zastąpienie "obrazu" przez "wideo" pomija quicktime i formaty Matroska ... –
@ElderGeek Chciałbym uruchomić plik na niektórych przykładach i sprawdzić, czy był fragment tekstu, na który mógłbym pomknąć. W sekcji obrazu rozwiązania awk można było rozdzielić wzory na przemian, na przykład/video | image | foo/zwróciłoby wszystkie pliki, które miały słowo wideo, obraz lub foo w swoim opisie z pliku. – f3xy
Jakieś pomysły dotyczące tego, w jaki sposób mogę pozbyć się: obrazu GIF lub: obrazu JPEG i pozostawić tylko nazwę pliku plus ścieżkę, aby móc przekazać go do innego polecenia jako wyjście? – VaTo
find . -type f -exec file {} \; | grep -o -P '^.+: \w+ image'
powinno być jeszcze lepiej.
dlaczego jest lepiej ? – Selah
Poniższe elementy pasują mi lepiej, ponieważ w moim przypadku chciałem potokować tę listę plików do innego programu.
find . -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) print $1}'
To jest naprawdę domyślna odpowiedź, jeśli chcesz wyprowadzić wyjście. Dzięki! –
Pomijanie lub używanie awk tylko w przypadku "obrazu" tego nie zrobi. Pliki PSD będą identyfikowane przez "Obraz" z kapitałem "I", więc musimy poprawić wyrażenie regularne, aby nie było rozróżniania wielkości liter, a także uwzględnić kapitał I. Pliki EPS nie zawierają w ogóle słowa "obraz", więc trzeba również dopasować do "EPS" lub "Postscriptu" w zależności od tego, co chcesz. Więc tutaj jest moja ulepszona wersja:
find . -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}'
dotyczących tego samego problemu, właśnie opublikował narzędzie o nazwie photofind (https://github.com/trimap/photofind). Zachowuje się jak normalne polecenie find, ale specjalizuje się w plikach obrazów i obsługuje filtrowanie wyników również w oparciu o informacje EXIF przechowywane w plikach graficznych. Zobacz więcej szczegółów w github-repo.
Link do rozwiązania jest mile widziany, ale upewnij się, że twoja odpowiedź jest przydatna bez niego: [dodaj kontekst związany z linkiem] (http://meta.stackexchange.com/a/8259), aby inni użytkownicy mieli pewne pojęcie to jest i dlaczego tam jest, a następnie zacytuj najbardziej odpowiednią część strony, do której prowadzi link, jeśli strona docelowa jest niedostępna. [Odpowiedzi, które są niewiele więcej niż link, można usunąć] (http://stackoverflow.com/help/deleted-answers). – mrun
Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić w nim istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ review/low-quality-posts/17292640) –
To narzędzie wydaje się opierać na nazwie pliku kończącego się rozszerzeniem pliku. To nie jest tak blisko, jak sprawdzanie wyniku polecenia pliku.Z podanego linku znajduje się przykład wywołania find ('find ~/Pictures \ (-iname" * .jpg "-lub -iname" * .jpeg "-lub -iname" * .png "-lub -iname "* .tif" -lub -iname "* .bmp" -lub -iname "* .gif" -lub -iname "*. xpm" -lub -iname "* .nef" -lub -iname "* .cr2" -lub -iname "* .arw" \) -size + 20k') – f3xy
- 1. Git: Lista wszystkich plików z niezmienioną flagą
- 2. Lista wszystkich dysków twardych w systemie Linux
- 3. Jak listę wszystkich plików graficznych dostać w Watchkit Extension
- 4. Lista wszystkich plików w jednym katalogu PHP
- 5. Problemy z rozszerzeniami plików graficznych (.vdproj)
- 6. Lista wszystkich plików w pakiecie homebrew
- 7. Lista wszystkich aktualnie otwartych uchwytów plików?
- 8. Git - lista wszystkich autorów folderu plików?
- 9. Lista wszystkich plików ze wszystkich folderów na jednej liście
- 10. git: lista wszystkich nazw plików i skrótów ich ostatniego zatwierdzenia
- 11. Lista wszystkich plików z internetowego katalogu FTP do listy C#
- 12. git: lista wszystkich zmienionych plików, łącznie z tymi w submodułach
- 13. Pliki wsadowe: Lista wszystkich plików w katalogu o ścieżkach względnych
- 14. Grep Regex: Lista wszystkich linii z wyjątkiem
- 15. Używanie grep do wyszukiwania plików dostarczanych przez find: co jest nie tak z find. | xargs grep "..."?
- 16. Dodawanie zakładki domyślne okno Właściwości plików graficznych
- 17. Węzeł wysyłania plików graficznych jako odpowiedź API
- 18. Usuwanie znaczników graficznych html i wszystkich pośrednich z ciągu
- 19. Lista wszystkich podkatalogów liścia w Linuksie
- 20. lista wszystkich plików w folderze, a także podfoldery
- 21. git - lista wszystkich zmienionych, ale nie usuniętych plików w zatwierdzeniu
- 22. Lista wszystkich zarejestrowanych plików w jednym zatwierdzeniu cvs
- 23. Lista wszystkich krajów rozwijanej
- 24. Akceptowanie plików graficznych przez e-mail z dowolnego adresu.
- 25. Lista wszystkich plików zmienionych przez konkretnego użytkownika w subversion
- 26. Lista wszystkich plików w folderze - pełna ścieżka do pliku
- 27. Lista wszystkich wersji plików w subversion? (Usuń pliki po nazwie)
- 28. lista wszystkich plików nagłówkowych zawartych w pliku C
- 29. Lista wszystkich plików, które istniały w repozytorium Git.
- 30. CVS: Lista wszystkich plików zmienionych pomiędzy znacznikami (lub datami)
Obawiam się, że będziesz musiał napisać skrypt basha, który wywoła funkcję find wraz ze wszystkimi rozszerzeniami. –
Czy byłby połączony w jakiś sposób z poleceniem "file", które zna typ pliku? – Edward