Muszę zbudować skrypt pokazujący pliki w tej samej kolejności, co domyślny folder Pobrane w doku, uporządkowany według Data dodania, najpierw najnowszy. Nie mogę znaleźć opcji w ls
.
Jakiś inny sposób to zrobić?
macos
command-line
metadata
Ramiro Araujo
źródło
źródło
Odpowiedzi:
Prostsze (szybsze) rozwiązanie:
źródło
Dodana data jest przechowywana jako element metadanych,
kMDItemDateAdded
amdls
polecenie ujawni dane dla każdego pliku przekazanego jako argument.Aby więc zrzucić datę dodaną dla wszystkich plików w Pobranych w dowolnej kolejności * rozszerzanej przez powłokę, możesz:
Będziesz musiał zhakować kilka kombinacji find i sed / awk / perl / cokolwiek, aby skompletować zamiennik,
ls
ale być może mdfind może zostać wywołany przez skrypt, zamiast potrzeby ponownego tworzenials
i analizowania tego wyniku.źródło
Cóż, jak zwykle, po napisaniu pytania zacząłem kopać zawartość metadanych w plikach i skończyłem pisać:
Zasadniczo: 1. wypisz wszystkie pliki 2. odfiltruj. i .. 3. pobiera nazwę i datę dodania, jedna linia po drugiej 4. łączy co dwie linie w 1 linię 5. wyodrębnia datę, godzinę i nazwę 6. sortuje je w odwrotnym kierunku (ponieważ data i godzina są z góry, sortuje według datetime)
Mam nadzieję, że pomoże to komuś innemu! :)
@ bmike, w rzeczywistości strona narzuciła mi ograniczenie, aby odpowiedzieć na moje pytanie dopiero po 8 godzinach od opublikowania mojego pytania, z powodu braku mojej reputacji: D
źródło
ls -A
zamiast-a
, abyś nie musiałgrep -v
za.
i..
.źródło