Ls gibi bir komut satırı aracından bir klasöre eklenen tarihe göre sıralanan dosyaları listeleyebilir miyim?


10

İlk eklenen tarih tarafından sipariş dock, varsayılan indirilenler klasörüyle aynı sırada dosyaları gösteren bir komut dosyası oluşturmak gerekir. Bu seçeneği bulamıyorum ls.

Bunu yapmanın başka bir yolu var mı?


Göstermek nerede ?
Rob

Komut satırı!. Sonunda hile yapan bir astar yazdım. Çok fazla üne sahip olmadığım için henüz kendi soruma cevap veremiyorum, daha sonra yapacağım.
Ramiro Araujo

Ramiro sitesine hoş geldiniz - her zaman kendi sorunuzu cevaplayabilmelisiniz - ancak cevabınızı "kabul edildi olarak işaretlemeniz" için bir kısıtlama olacaktır. Cevabımı ihtiyaçlarınıza göre düzenleyebilir veya isterseniz / istediğiniz zaman kendi cevabınızı verebilirsiniz.
bmike

Yanıtlar:


6

Daha basit (Daha hızlı) çözüm:

mdls -name kMDItemFSName -name kMDItemDateAdded -raw * | \
xargs -0 -I {} echo {} | \
sed 'N;s/\n/ /' | \
sort

1
Evet, çok daha iyi :)
Ramiro Araujo

Birisi bu çizgilerin her birinin ne yaptığını ayrıntılandırabilir mi? Ayrıca, bu çözüm Terminal'de ayrı komut satırları (sırayla, birbiri ardına) veya yalnızca bir komut dosyası içinde gerçekleştirilebilir mi?
EJ Mak

4

Eklenen tarih meta veri öğesi olarak saklanır kMDItemDateAddedve mdlskomut, kendisine bağımsız değişken olarak iletilen her dosya için verileri gösterir.

Bu nedenle, İndirilenler'deki tüm dosyalar için eklenen tarihi rastgele sırada * kabuğunuz tarafından genişletildiğinde dökümü yapmak için şunları yapabilirsiniz:

mdls -adı kMDItemDate Added ~ / İndirilenler / *

Bir yerine koymak için find ve sed / awk / perl / ne olursa olsun bir arada hacklemeniz gerekir, lsancak mdfind lsbu çıktıyı yeniden keşfetmek ve ayrıştırmak yerine betiğiniz tarafından çağrılabilir .


1
Evet! Daha sonra buldum ve bana bir çok şey öğretti güzel bir astar yaptı :) Yardım için teşekkürler
Ramiro Araujo

2
Cevabımı düzenleyerek bir astarı yapıştırın - bilgiyi paylaşın!
bmike

2

Her zamanki gibi, soruyu yazdıktan sonra dosyalarda meta veri içeriği için kazmaya başladım ve bunu yazdım:

ls -a | \
grep -v '^\.$\|^\.\.$' | \
xargs -I {} mdls -name kMDItemFSName -name kMDItemDateAdded {} | \
sed 'N;s/\n//' | grep -v '(null)' | \
awk '{print $3 " " $4 " " substr($0,index($0,$7))}' | \
sort -r

Temelde: 1. tüm dosyaları listeler 2. filtreler. ve .. 3. ad ve tarihi ekler, bir satır birbiri ardına alır 4. her iki satırı 1 satırda birleştirir 5. tarih, saat ve adı ayıklar 6. ters sıralar (datetime açık olduğundan, sıralar datetime)

Umarım başka birine yardımcı olur! :)

@bmike aslında, site benim itibarımı cevaplamam nedeniyle 8 saat sonra kendi sorumu cevaplamam için bir kısıtlama getirdi: D


oh, bir astarı sadece netlik için birkaç satıra
ayırdım

1
Kullanım ls -Ayerine -abunu yapmak zorunda kalmamak grep -viçin .ve ...
mfilej

0

adam ls

 -U      Use time of file creation, instead of last modification for
         sorting (-t) or long output (-l).

1
hayır, eklenme tarihine ihtiyacım var, oluşturulma tarihi değil. Bağlantı birimindeki varsayılan indirme klasörüyle aynı
Ramiro Araujo

Eklenme tarihi, oluşturulma tarihi ile aynı değil?
Jason

1
Jason - oluşturulduğu tarih, dosyanın oluşturulduğu tarihtir; bu nedenle Safari başka bir bilgisayardan bir dosya indirdiğinde, bu indirme için açıkça oluşturuldu veya indirme gerçekleşmeden aylar veya yıllar önce oluşturulmuş olabilir. Bu verilerin OS X'te nerede depolandığı ile ilgili ayrıntılar için cevabımı görün.
bmike
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.