Zuletzt aktiv 1 month ago

Erreur32's Avatar Erreur32 hat die Gist bearbeitet 6 months ago. Zu Änderung gehen

Keine Änderungen

Erreur32's Avatar Erreur32 hat die Gist bearbeitet 6 months ago. Zu Änderung gehen

1 file changed, 2 insertions, 2 deletions

taille-dir.sh

@@ -35,8 +35,8 @@ get_type_color() {
35 35 local f="$1"
36 36
37 37 if [ -d "$f" ]; then echo "📁 ${C_DIR}"
38 - elif [[ "$f" =~ \.(zip|tar|gz|bz2|xz|rar|7z)$ ]]; then echo "🗜️ ${C_ARCH}"
39 - elif [[ "$f" =~ \.(sh|py|pl|rb)$ ]]; then echo "⚙️ ${C_SCRIPT}"
38 + elif [[ "$f" =~ \.(zip|tar|gz|bz2|xz|rar|7z)$ ]]; then echo "📚 ${C_ARCH}"
39 + elif [[ "$f" =~ \.(sh|py|pl|rb)$ ]]; then echo "🔧 ${C_SCRIPT}"
40 40 elif [[ "$f" =~ \.(jpg|jpeg|png|gif|webp)$ ]]; then echo "🖼️ ${C_IMG}"
41 41 elif [[ "$f" =~ \.(mp4|avi|mkv|mov)$ ]]; then echo "🎞️ ${C_VIDEO}"
42 42 elif [[ "$f" =~ \.(mp3|wav|ogg|flac)$ ]]; then echo "🎵 ${C_AUDIO}"

Erreur32's Avatar Erreur32 hat die Gist bearbeitet 6 months ago. Zu Änderung gehen

1 file changed, 71 insertions

taille-dir.sh(Datei erstellt)

@@ -0,0 +1,71 @@
1 + #!/bin/bash
2 +
3 + # ===== Couleurs =====
4 + C_RESET="\e[0m"
5 + C_DIR="\e[34m" # Dossiers
6 + C_FILE="\e[32m" # Fichiers
7 + C_ARCH="\e[35m" # Archives
8 + C_SCRIPT="\e[33m" # Scripts .sh .py .pl
9 + C_IMG="\e[36m" # Images
10 + C_VIDEO="\e[31m" # Vidéos
11 + C_AUDIO="\e[95m" # Musique
12 + C_HEAD="\e[96m" # En-têtes
13 + C_SIZE="\e[90m" # Gris fade pour la taille
14 +
15 +
16 + directory="${1:-.}"
17 + display_dir=$(realpath "$directory")
18 +
19 + # ===== Vérifications =====
20 + if [ ! -d "$directory" ]; then
21 + echo -e "\e[31m❌ Erreur : dossier introuvable : $directory${C_RESET}"
22 + exit 1
23 + fi
24 +
25 + echo -e "${C_HEAD}📁${C_RESET} Listing du dossier :${C_HEAD} $display_dir${C_RESET}"
26 + echo -e "${C_FILE}📦${C_RESET} Taille totale :${C_FILE} $(du -sh "$directory" | awk '{print $1}')${C_RESET}"
27 + echo
28 +
29 + # ===== En-têtes (sans LINKS) =====
30 + printf "%-6s %-11s %-12s %-12s %-8s %-17s %s\n" \
31 + "TYPE" "PERMISSIONS" "OWNER" "GROUP" "SIZE" "DATE" "NAME"
32 +
33 + # ===== Fonction type et couleur =====
34 + get_type_color() {
35 + local f="$1"
36 +
37 + if [ -d "$f" ]; then echo "📁 ${C_DIR}"
38 + elif [[ "$f" =~ \.(zip|tar|gz|bz2|xz|rar|7z)$ ]]; then echo "🗜️ ${C_ARCH}"
39 + elif [[ "$f" =~ \.(sh|py|pl|rb)$ ]]; then echo "⚙️ ${C_SCRIPT}"
40 + elif [[ "$f" =~ \.(jpg|jpeg|png|gif|webp)$ ]]; then echo "🖼️ ${C_IMG}"
41 + elif [[ "$f" =~ \.(mp4|avi|mkv|mov)$ ]]; then echo "🎞️ ${C_VIDEO}"
42 + elif [[ "$f" =~ \.(mp3|wav|ogg|flac)$ ]]; then echo "🎵 ${C_AUDIO}"
43 + else echo "📄 ${C_FILE}"
44 + fi
45 + }
46 +
47 + # ===== Listing =====
48 + ls -A "$directory" | while read entry; do
49 + path="$directory/$entry"
50 +
51 + type_color=$(get_type_color "$entry")
52 + emoji=$(echo "$type_color" | awk '{print $1}')
53 + color=$(echo "$type_color" | awk '{print $2}')
54 +
55 + perms=$(stat -c "%A" "$path")
56 + owner=$(stat -c "%U" "$path")
57 + group=$(stat -c "%G" "$path")
58 + size_raw=$(du -sh "$path" 2>/dev/null | awk '{print $1}')
59 + date=$(stat -c "%y" "$path" | cut -d':' -f1,2) # Retire les secondes (HH:MM)
60 +
61 + printf "%b%-6s%b %-11s %-12s %-12s %b%-8s%b %-17s %b%s%b\n" \
62 + "$color" "$emoji" "$C_RESET" \
63 + "$perms" "$owner" "$group" \
64 + "$C_SIZE" "$size_raw" "$C_RESET" \
65 + "$date" \
66 + "$color" "$entry" "$C_RESET"
67 +
68 + done
69 +
70 + echo
71 + exit 0
Neuer Älter