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