GNU/Linux >> Znalost Linux >  >> Linux

Linux – získávání souborů pro aktuální datum v Linuxu?

Obvykle date +%d dává výstup 08 k aktuálnímu datu 8.10.2017. Ale když udělám ls -lrt na cestě je formát data jako Oct 8 15:03 , jak tedy získám soubory aktuálního data?

Používám příkaz

ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'

ale nedává mi to soubor s dnešním datem (08/10/2017), i když mi dává správný výstup pro data 10 – 31 každého měsíce.

Přijatá odpověď:

Je to trochu podvádění, ale funguje to.

Nejprve vytvořte prázdný referenční soubor s konkrétním časovým razítkem, konkrétně půlnoc:

touch -d "$(date +%FT00:00:00)" /tmp/midnight

Potom vyhledejte soubory, které jsou novější než tento soubor:

find . -type f -newer /tmp/midnight

Pokud chcete ls -jako výstup z find spíše než jen názvy cest:

find . -type f -newer /tmp/midnight -ls

Pokud chcete najít soubory odpovídající vzoru XYZ.LOG* :

find . -type f -name 'XYZ.LOG*' -newer /tmp/midnight -ls

Pokud máte GNU find , můžete dočasný soubor obejít a použít

find . -type f -newermt 0

pro úpravu souborů od půlnoci.

Související:Proč *ne* analyzovat `ls`?


Linux
  1. Najděte největší soubory a adresáře v Linuxu

  2. Jak najít aplikaci pro typ mime v systému Linux?

  3. Použijte Najít a najít k vyhledání souborů v Linuxu

  1. Jak zkontrolovat velké soubory v konzole

  2. Jak najít všechny řídké soubory v Linuxu

  3. Kopírování souborů na základě data modifikace v Linuxu

  1. Linux:Jak najít ovladač zařízení používaný pro zařízení?

  2. Příkazy hledání pro Linux

  3. Jak používat Linuxový příkaz find k hledání souborů