GNU/Linux >> Znalost Linux >  >> Linux

Jak vytisknout název chybějících souborů ve složce?

Ve složce mám více než 2000 souborů, ale ve složce chybí několik souborů.

Názvy souborů jsou jako

GLDAS_NOAH025SUBP_3H.A2003001 0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003001.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003001.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003001.1800 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.1800 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.1800 .001.2015210044609.pss.grb

001 označuje den, zatímco 0000 je hodina.

Jak zjistit, který soubor ve složce chybí? Na Googlu jsem dostal několik odpovědí, ale nemohl jsem přijít na to, jak je implementovat.

Přijatá odpověď:

Pomocí zsh nebo bash4 , můžete k tomu použít rozšíření závorky:

ls -d GLDAS_NOAH025SUBP_3H.A2003{001..006}.{0000,0600,1200,1800}.001.2015210044609.pss.grb >/dev/null

Všimněte si závorek:

  • {001..006} znamená expandovat na 001 , 002 , … 006
  • {0000,0600,1200,1800} ke každému z výše uvedených přidejte 0000 , 0600 , 1200 a 1800 .
  • >/dev/null je vyhnout se standardnímu výstupu ls -> chceme pouze standardní chybu

Nyní, pokud jeden soubor není přítomen, ls zobrazí chybu:

ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.1800.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.1800.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.1800.001.2015210044609.pss.grb: No such file or directory

S ksh93 , nahraďte {001..006} s {1..6%.3d} .


Linux
  1. Tisknout všechny soubory ve složce?

  2. Jak napsat cestu ke složce s mezerou v jejím názvu?

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

  1. Jak změnit příponu více souborů?

  2. Jak získám uživatelské jméno v souboru Makefile?

  3. Jak najít největší adresáře nebo největší soubory?

  1. Jak mohu změnit název mnoha souborů ve složce?

  2. Jak vytvořit novou složku nebo soubory ve správci souborů cPanel?

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