Próbowałem użyć wyszukiwania pliku Unity Lens *.*
i filtrowania według Ostatnia modyfikacja = Wszystkie, Typ = Wideo i Rozmiar = Wszystkie, ale nic nie znalazłem, chociaż wiem, że w folderze Zdjęcia są pliki .3gp. Wiem, że mam także wiele plików wideo na innym dysku zamontowanym w systemie plików. Skompilowałem listę prawdopodobnych rozszerzeń i próbowałem wielu iteracji find
polecenia, używając ich z find ./ -name "* .ext" -o (itp., Itp., Na muzeum) bez żadnego szczęścia. Jakie jest rozwiązanie?
11
Odpowiedzi:
Alternatywnie: wyszukaj w pliku :
lub jeśli chcesz tylko nazwy plików ...
-N, --no-pad
: Nie wpisuj nazw plików-i, --mime
: Powoduje, że polecenie file wyświetla łańcuchy znaków typu mime zamiast bardziej tradycyjnych, czytelnych dla człowieka. Dlatego może powiedzieć „tekst / zwykły; charset = us-ascii ”zamiast„ tekst ASCII ”. Aby ta opcja działała, plik zmienia sposób, w jaki obsługuje pliki rozpoznawane przez samo polecenie (takie jak wiele typów plików tekstowych, katalogów itp.), I wykorzystuje alternatywny plik „magiczny”. (Zobacz sekcję PLIKI poniżej).Sekcja PLIKI wskazuje na:
file
jest powolnywwwwwwwwwwwwwwww chociaż (otworzy wszystkie znalezione znalezione pliki), ale ma tę zaletę, że nie trzeba dodawać wszystkich tych rozszerzeń.Za pomocą zlokalizuj:
źródło
Wyobrażam sobie, że można to zrobić jako 1-liniowy, ale wydawało mi się to trochę kłopotliwe, więc stworzyłem skrypt ułatwiający uruchamianie i edycję i nazwałem go
findvids.sh
To właśnie działało dla mnie.Uwaga: Być może nie obejmowałem WSZYSTKICH typów plików wideo, ale jestem pewien, że mam większość z nich. Jednym godnym uwagi wyjątkiem jest .mkv, ponieważ jest to format docelowy projektu i nie muszę szukać plików, które zostały już przetworzone. Dodanie dodatkowych formatów (rozszerzeń) do skryptu powinno być bardzo proste, aby dopasować je do twoich potrzeb, analizując wzór i odpowiednio dostosowując, zachowując cudzysłowy na początku i na końcu wyrażenia. Pamiętaj, że pliki, których nie masz uprawnień do odczytu, nie zostaną znalezione.
Edycja na podstawie komentarza:
$
na końcu oznacza, że przedłużenie terminu wyszukiwania musi się znaleźć na końcu linii. gdybyśmy chcieli dopasować początek linii, użylibyśmy^
przed terminem, który zamierzamy dopasować. Możesz znaleźć te kotwice wyjaśnione bardziej szczegółowo tutaj.Zrobiłem porównanie prędkości przy użyciu locate, a wyniki były następujące:
vs.
Nieoczekiwanie znalezienie jest szybsze. Będę używał tego podejścia.
Edycja: dalsze testy wskazują, że lokalizacja była szybsza na innym komputerze. Myślę, że moje początkowe wyniki testu prędkości były piętrowe z powodu buforowania.
Źródła:
man find
man grep
/programming/7190565/unix-find-multiple-file-types
źródło
touch hello.mp4
nie tworzy pliku wideo>: - D i możesz go zmienić na,locate
aby przyspieszyć.touch
Jednak ponieważ nie zostało to zrobione w tym systemie, w tym przypadku tak naprawdę nie ma to znaczenia. Jeśli chodzi o lokalizację, musiałbym wtedy uruchomićupdatedb
, aby mieć aktualne dane, czyż nie?