GNU/Linux >> Tutoriels Linux >  >> Linux

Comment imprimer le nom des fichiers manquants dans un dossier ?

J'ai plus de 2000 fichiers dans un dossier, mais il manque peu de fichiers dans le dossier.

Le nom des fichiers ressemble à

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 indique le jour, tandis que 0000 est l'heure.

Comment savoir quel fichier manque dans le dossier ? J'ai eu peu de réponses dans Google mais je n'ai pas trouvé comment les mettre en œuvre.

Réponse acceptée :

Avec zsh ou bash4 , vous pouvez utiliser l'expansion des accolades pour cela :

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

Remarquez les crochets :

  • {001..006} signifie étendre à 001 , 002 , … 006
  • {0000,0600,1200,1800} à chacun des éléments ci-dessus, ajoutez 0000 , 0600 , 1200 et 1800 .
  • >/dev/null est d'éviter la sortie standard de ls -> nous ne voulons que l'erreur standard

Maintenant, si un fichier n'est pas présent, ls affichera une erreur pour cela :

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

Avec ksh93 , remplacez {001..006} avec {1..6%.3d} .


Linux
  1. Comment créer un nouveau dossier ou des fichiers dans le gestionnaire de fichiers cPanel ?

  2. Comment trouver tous les fichiers épars sous Linux

  3. Comment trouver les répertoires les plus volumineux ou les fichiers les plus volumineux ?

  4. Comment puis-je imprimer/afficher le nom d'utilisateur principal ou l'UPN d'un certificat p12 sous Linux ?

  5. Comment configurer les autorisations Linux pour le dossier WWW ?

Comment rechercher des fichiers sous Linux avec la commande Find

Comment modifier récursivement les autorisations de fichiers sous Linux

Comment trouver des fichiers en utilisant la ligne de commande dans le terminal Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Comment changer le nom d'hôte sur Debian Linux

Comment puis-je grep filtrer récursivement le nom des fichiers que je veux avec des caractères génériques ?