Proste, a automatyzujące wiele działań administracyjnych pod Linuxem komenda:
ls -d */ | rev | cut -c 2- | rev | xargs -I % sh -c '7z a "%.7z" "%";'
ls -d */ | rev | cut -c 2- | rev | xargs -I % sh -c '7z a "%_20250914.7z" "%";'
ls -d */ | rev | cut -c 2- | rev | xargs -I @ sh -c '7z a "@_`date +%Y_%m_%d`.7z" "@";'
Powyższy rozkaz wykonana w danym katalogu archiwizuje same podkatalogi (opcja "-d") w postaci plików spakowanych programem 7zip. Komenda rev odwraca znaki tekstu przód na tył by usunąć znak "/" z nazwy ścieżki będacej przed odwróceniem znakiem na końcu komendą "cut -c 2-" . Ponieważ dzieci Outlooka lubią spacje musimy ja usunć ciągu naprzykład komendą cut -d -f1- --output-delimiter="_" ,gdzie jest zamieniana na znak podkreslenia "_". Oczywiście po zmodyfikowaniu nazwy katalogów odwracamy ciąg na pierwotny kierunek. Tak przygotowany ciąg znaków możemy przekazać do spakowania programem 7zip poprzez zmienną % komenda xargs. Natomiast poniżej pokazuję komendę, która wykorzystałem do wizualizacji wyników powyzszej komendy:
ls -d */ | rev | cut -c 2- | rev | xargs -0 -I % sh -c 'echo "%" | cut -d " " -f1- --output-delimiter="_" ;'
Na deser linijka zmieniająca nazwę plików z rozszerzeniem 7z poprzez dodanie do końca nazwy dowolny tekst, np. _2023_04_22
ls *.7z | rev | cut -c 4- | rev | xargs -I % sh -c 'mv "%.7z" "%_2023_04_22.7z";'
lub zmiana nazwy połączona z kopiowaniem
ls *.7z | rev | cut -c 4- | rev | xargs -I % sh -c 'cp "%.7z" "%_2023_04_22.7z";'
Na koniec przydało by się sprawdzić ile zaoszczędziliśmy pamięci masowej w katalogu /home/anonim:
du -h --max-depth=1 /home/anonim | sort -h
lub całościowo:
df