GNU/Linux >> Tutoriels Linux >  >> Linux

Bz2 chaque fichier dans un répertoire

Pour bzip2 sur un Mac multicœur, vous pouvez émettre la commande suivante (lorsque vous êtes dans le dossier que vous souhaitez bzip)

find . -type f -print0 | xargs -0 -n1 -P14 /opt/local/bin/bzip2

Cela va compresser chaque fichier de manière récursive dans le dossier dans lequel se trouve votre terminal en utilisant simultanément 14 cœurs de processeur.

Vous pouvez ajuster le nombre de cœurs à utiliser en modifiant

 -P14

Si vous ne savez pas où se trouve le binaire bzip2, vous pouvez émettre la commande suivante pour le découvrir

which bzip2

La sortie de cette commande est ce que vous pouvez remplacer

/opt/local/bin/bzip2

avec


Si tous les fichiers sont dans un seul répertoire alors :

bzip2 *

Est assez. Une approche plus robuste est :

find . -type f -exec bzip2 {} +

Ce qui compressera tous les fichiers du répertoire courant et de ses sous-répertoires, et fonctionnera même si vous avez des dizaines de milliers de fichiers (l'utilisation de * cassera s'il y a trop de fichiers dans le répertoire).

Si votre ordinateur possède plusieurs cœurs, vous pouvez l'améliorer davantage en compressant plusieurs fichiers à la fois. Par exemple, si vous souhaitez compresser 4 fichiers simultanément, utilisez :

find . -type f -print0 | xargs -0 -n1 -P4 bzip2

J'ai écrit le script ci-dessous à bzip2 fichiers dans un autre répertoire

#!/bin/bash
filedir=/home/vikrant_singh_rana/test/*

for filename in $filedir; do
name=$(basename "$filename" | sed -e 's/\.[^.]*$//')
bzip2 -dc $filename > /home/vikrant_singh_rana/unzipfiles/$name
done

mon exemple de nom de fichier était comme

2001_xyz_30Sep2020_1400-30Sep2020_1500.csv.bz2

Je n'ai pas pu obtenir de commande directe, c'est pourquoi je l'ai fait. Cela fonctionne bien comme prévu.


Linux
  1. Copier des fichiers dans le terminal Linux

  2. Déplacer des fichiers dans le terminal Linux

  3. Compter les lignes dans les fichiers volumineux

  4. Extraire tar l'erreur de fichier tar.bz2

  5. Comment convertir tar.bz2 en tar.gz ?

Comment compresser et décompresser un fichier .bz2 sous Linux

Commande Cp sous Linux (Copier des fichiers)

Comment renommer un ou plusieurs fichiers sous Linux

Gestionnaire de fichiers vs FTP

Transférer des fichiers à l'aide de WinSCP

Comment compresser un fichier sous Linux