Ajouter miscellaneous/archive_files.sh
This commit is contained in:
35
miscellaneous/archive_files.sh
Normal file
35
miscellaneous/archive_files.sh
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script archives each file and directory in the current directory into its respective 7z archive.
|
||||
# It ensures that the created archives are not included in the loop to avoid an infinite loop.
|
||||
# It also checks if 7z is installed and installs it if necessary.
|
||||
|
||||
# Usage:
|
||||
# 1. Save this script to a file, e.g., archive_files.sh.
|
||||
# 2. Make the script executable: chmod +x archive_files.sh.
|
||||
# 3. Run the script in the directory containing the files and directories to be archived: ./archive_files.sh.
|
||||
|
||||
# Check if 7z is installed
|
||||
if ! command -v 7z &> /dev/null; then
|
||||
echo "7z is not installed. Installing 7z..."
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y p7zip-full
|
||||
fi
|
||||
|
||||
# Check if the current directory contains any files or directories
|
||||
if [ -z "$(ls -A .)" ]; then
|
||||
echo "No files or directories to archive in the current directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Loop through each item in the current directory
|
||||
for item in *; do
|
||||
# Check if the item is not a 7z archive
|
||||
if [[ ! "$item" =~ \.7z$ ]]; then
|
||||
# Create a 7z archive for the file or directory
|
||||
7z a "${item}.7z" "$item"
|
||||
echo "Archive created for $item: ${item}.7z"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "All files and directories have been archived."
|
||||
Reference in New Issue
Block a user