Portál AbcLinuxu, 13. července 2025 06:06
ls -t $DIR | tail -n 1Nájdenie 10-teho najstaršieho súboru:
ls -t $DIR | tail -n 10 | head -n 1Nájdenie súborov starších než daný súbor:
find $DIR -maxdepth 1 -type f -not -newer $SUBORZmazanie nájdených súborov:
find ... -delete
#!/bin/bash # adresář s cam záznamy ADRESAR=/mnt/datastore # zjistit volné místo v KiB VOLNEKB=`df ${ADRESAR} | awk '{print $4}' | tail -1` # minimálně volných 10GiB MINVOLNEKB=1048576000 # kontrola a následné smazání if [ "${VOLNEKB}" -lt "${MINVOLNEKB}" ]; then echo -e "Malo místa, mažu starší záznamy...\n" ls -t ${ADRESAR} | head -n 20 | xargs rm -f fiZáleží na tobě, jakou máš strukturu dat, zda tam máš jen soubory, nebo i podadresáře (to by pak bylo třeba použít find) atd.
~$ find tam_kde_mas_ty_soubory/ -type f -exec stat -c "%Y %n" '{}' \; | sort -n | head -10
To ti vypíše 10 nejstarších souborů. Přesněji řečeno souborů, jejichž změna je nejvíc v minulosti. Ale bacha na jednu věc. Některé sobubory mohou mít blbě nastavený čas poslední změny. Uvedu příklad:
user@stroj:~$ stat Dokumenty/zaloha_mobilu/record20160308074613.3gpp Soubor: Dokumenty/zaloha_mobilu/record20160308074613.3gpp Velikost: 151299 Bloků: 296 I/O blok: 4096 běžný soubor Zařízení: 0,26 I-uzel: 18521993 Odkazů: 1 Práva: (0644/-rw-r--r--) UID: ( 1001/ user) GID: ( 1001/ user) Přístup: 2022-04-10 20:05:15.535705023 +0200 Změna obsahu: 0000-12-31 00:57:44.000000000 +0057 Změna i-uzlu: 2016-06-16 20:27:14.325377539 +0200 Vznik: 2016-06-16 20:27:14.321377272 +0200
Jak vidno z jeho názvu, byl vytvořen 8.3. 2016 v 07:46:13 a odzálohován 16.6.2016. Ovšem čas změny obsahu je 31.12. roku 0, což je evidentně blbě. Inu iMacwear M7, první hodinky s Androidem se kterými šlo telefonovat dostupné za rozumnou cenu, holt měly své mouchy.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.