Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # This script removes all files with filenames containing non-alphanumeric characters.
- # I created it specially for removing files with russian characters for creating an
- # OpenBOR pak file.
- # Set a flag to indicate dry-run mode
- dry_run=false
- # Check for the --dry-run argument
- if [[ "$1" == "--dry-run" ]]; then
- dry_run=true
- fi
- # Function to process a directory (and its subdirectories recursively)
- process_directory() {
- local dir="$1"
- # Loop through all files and subdirectories in the given directory
- for item in "$dir"/*; do
- # Check if the item is a directory
- if [[ -d "$item" ]]; then
- # Extract the directory name
- dirname=$(basename "$item")
- # Check if the directory name contains invalid characters
- if [[ "$dirname" =~ [^a-zA-Z0-9_.-] ]]; then
- # Print the directory name
- echo "Invalid directory name: $item"
- # Delete the directory and its contents if not in dry-run mode
- if ! $dry_run; then
- rm -rf "$item"
- fi
- else
- # Recursively process the subdirectory
- process_directory "$item"
- fi
- else
- # If it's a file, process it as before
- filename=$(basename "$item")
- if [[ "$filename" =~ [^a-zA-Z0-9_.-] ]]; then
- echo "Invalid filename: $item"
- if ! $dry_run; then
- rm "$item"
- fi
- fi
- fi
- done
- }
- # Start processing from the current directory
- process_directory "."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement