Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man batchkomprimerar filer på Mac (automatisera med ett Bash-skript)

Om du ofta behöver komprimera ett stort antal filer på din Mac kan du ha tyckt att processen är långsam och repetitiv. Även om det inbyggda Archive Utility i Mac OS kan användas för att komprimera filer i omgångar, kan det fortfarande vara en manuell process. Men med lite skriptkunskap kan du automatisera processen att batchkomprimera filer med ett Bash-skript.

I den här artikeln går vi igenom processen att skapa ett Bash-skript som gör att du kan komprimera filer i satser av valfritt antal, på din Mac. Oavsett om du arbetar med hundratals eller tusentals filer, är detta skript hjälper dig att spara tid och undvika monotonin med att manuellt komprimera filer. I slutet av denna handledning har du ett fullt fungerande Bash-skript som du kan använda för att batchbearbeta zip-filer i vilken mängd du behöver, med bara några enkla kommandon.

Låt oss till exempel säga att du har 100 filer i en viss mapp. Du kan använda det här skriptet för att komprimera filerna i grupper om 10, vilket kommer att resultera i 10 komprimerade filer totalt. Alternativt kan du komprimera filerna i grupper om 5, vilket resulterar i totalt 20 komprimerade filer, och så vidare.

#!/bin/bash

# Set the directory path to the folder containing the files to be compressed
DIR_PATH="/path/to/folder"

# Set the name prefix of the output archive files
ARCHIVE_PREFIX="archive"

# Set the maximum number of files per batch
MAX_FILES=20

# Change directory to the specified path
cd "$DIR_PATH"

# Get a list of all files in the directory
files=( * )

# Calculate the number of batches of files
num_batches=$(( (${#files[@]} + $MAX_FILES - 1) / $MAX_FILES ))

# Loop through each batch of files
for (( i=0; i<$num_batches; i++ )); do
    # Set the start and end indices of the batch
    start=$(( $i * $MAX_FILES ))
    end=$(( ($i + 1) * $MAX_FILES - 1 ))
    
    # Check if the end index exceeds the number of files
    if (( $end >= ${#files[@]} )); then
        end=$(( ${#files[@]} - 1 ))
    fi
    
    # Create a compressed archive file for the batch of files
    archive_name="${ARCHIVE_PREFIX}_${i}.tar.gz"
    tar -cvzf "$archive_name" "${files[@]:$start:$MAX_FILES}"
done

Ladda ner skript.

Relaterad  Final Fantasy 7 Remake: Free PS5-uppgradering för PS Plus-version

Vad gör det här skriptet?

Skriptet ovan är ett bash-skript som komprimerar flera filer till batchfiler.

Ställ först in sökvägen till mappen (DIR_PATH=”/sökväg/till/mapp“) som innehåller filerna som ska komprimeras, namnprefixet för utdatafilerna (ARCHIVE_PREFIX=”arkiv“) och det maximala antalet filer per batch (MAX_FILES=tjugo).

Den ändrar sedan den aktuella katalogen till den angivna sökvägen och får en lista över alla filer i den katalogen. Skriptet beräknar sedan antalet batcher av filer och loopar genom varje batch.

För varje batch, ställ in start- och slutindex för batchen, kontrollera om slutindexet överstiger antalet filer och skapa sedan en zip-fil för batchen av filer med kommandot ‘tar’.

De resulterande komprimerade filerna namnges med det angivna prefixet och numreras sekventiellt.

Hur använder man skriptet?

Steg 1.

För att batchbearbeta zip-filer på din Mac, först skapa en ny mapp och placera alla filer du vill komprimera i den mappen.

Du kan till exempel skapa en mapp som heter ‘komprimera’ på ditt skrivbord och placera alla relevanta filer i den mappen. När du har gjort detta kan du hitta sökvägen till mappen genom att navigera till den i Finder och sedan högerklicka och välja ‘Få information‘.

Alternativt kan du använda kommandot pwd i Terminal för att visa den aktuella katalogen och sedan lägga till mappnamnet i slutet av sökvägen. Och i vårt fall, vägen till zipme/ är: /Users/hongkiat/Desktop/zipme, så kommer vi att göra följande:

redigera:

DIR_PATH="/path/to/folder"

att vara:

DIR_PATH="/Users/hongkiat/Desktop/zipme"
Steg 2.

Kopiera och klistra in koden ovan till en ny fil på din Mac med en textredigerare som TextEdit eller Atom. Spara filen med filtillägget (till exempel ) och gör det körbart genom att köra följande kommando i Terminal:

chmod +x /path/to/batch_zip.sh
Steg 3.

För att köra skriptet öppnar du sedan Terminal och navigerar till katalogen där skriptet är sparat. Skriv följande kommando och tryck Kom in i:

./batch_zip.sh

Notera: Om det inte fungerar att köra ./batch_zip.sh, försök använda sudo ./batch_zip.sh istället. Observera att “sudo” kräver auktorisering genom att ange lösenordet för det aktuella Mac-användarnamnet.

Relaterad  Så här kan du göra din LCD-skärm osynlig för alla utom dig

När de har körts komprimeras alla filer i den angivna mappen i batcher med upp till 20 filer vardera, och en fil kommer att skapas för varje batch med det angivna prefixet och ett inkrementellt nummer.