Pakowanie katalogów do plików oraz seryjna zmiana nazwy plików
Linux - bash - 7zip

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

Uaktualnienie UBUNTU
18 updates can be applied immediately. Error reading from server - read (104: Connection reset by peer)