GNU/Linux >> Tutoriels Linux >  >> Linux

comment puis-je rechercher des fichiers et les compresser dans un seul fichier zip

La commande que vous utilisez exécutera zip sur chaque fichier séparément, essayez ceci :

find . -name <name> -print | zip newZipFile.zip [email protected]

Le [email protected] indique à zip de lire les fichiers à partir de l'entrée. De man zip(1),

[email protected] listes de fichiers. Si une liste de fichiers est spécifiée comme [email protected] [Pas sur MacOS], zip récupère la liste des fichiers d'entrée à partir de l'entrée standard au lieu de la ligne de commande.


Votre réponse est proche, mais cela pourrait mieux fonctionner :

find -regex 'regex' -exec zip filname.zip {} +

Cela mettra tous les fichiers correspondants dans un fichier zip appelé filename.zip. Vous n'avez pas à vous soucier des caractères spéciaux dans le nom de fichier (comme un saut de ligne), ce que vous feriez si vous dirigiez les résultats.


Vous pouvez également fournir les noms à la suite de votre commande de recherche :

zip name.zip `find . -name <name> -print`

Il s'agit d'une fonctionnalité du shell que vous utilisez. Vous pouvez rechercher des "backticks" pour déterminer comment votre shell gère cela.


Linux
  1. Comment archiver des fichiers et des répertoires sous Linux [Partie 2]

  2. Comment rechercher des fichiers par taille et extension ?

  3. Rechercher des fichiers dans un répertoire et afficher le résultat dans un fichier texte ?

  4. Comment rechercher des fichiers pour le contenu

  5. Comment auditer les modifications apportées aux fichiers et les exécutions de fichiers sous Linux

Comment comparer et fusionner des fichiers texte sous Linux

Comment compresser et décompresser des fichiers sur Ubuntu

Comment trouver des fichiers en double sous Linux et les supprimer

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment effectuer une recherche Grep sur tous les fichiers et dans tous les répertoires

Comment compresser un fichier sous Linux