Automate safe system upodates with a single script (for APT + systemd systems)

THE PROBLEM Keeping a Linux system fully updated usually means doing several things by hand: Update APT package lists Upgrade installed packages Remove unused dependencies and cached files Update Flatpak apps (if you use Flatpak) Update firmware via fwupd (if available) Decide whether to reboot or shut down None of that is hard, but it is repetitive and easy to skip steps, especially firmware updates. This script turns that whole workflow into a single, safe command. REQUIREMENTS This script assumes: Package manager Uses APT Example: Debian, Ubuntu, Linux Mint and similar Init system Uses systemd (for systemctl reboot/poweroff) Shell bash (script uses “#!/usr/bin/env bash” and “set -euo pipefail”) You can run it with: bash script.sh Privileges Your user has sudo rights Optional components Flatpak (optional) If not installed, Flatpak steps are skipped fwupd (fwupdmgr, optional) If not installed, firmware steps a...

Finding files: globbing, wildcards, command FIND

 To find a file you don't know entirely the name, you do

GLOBBING USING WILDCARDS:

?
Matches any single character

*
Matches any string of characters

[set]
Matches any character in the set of characters, eg [adf] matches any occurrence of a, d, or f

[!set]
Matches any character not in the set of characters

[character1-character2]
Matches any character included in the range (numbers or letters)

[!character1-character2]
Matches any character not included in the range (numbers or letters)


COMMAND: FIND

find -name "*.swp" -exec rm {} ’;’

  • {} is a placeholder. This means that it represents in the command all the results of the search. The results need {} to be virtually represented in the command.
  • The semicolon at the end closes each iteration. Therefore, it's related to the iterations, not to the command itself. It can be replaced by \; and +
  • -exec can be replaced by -ok to prompt the permission to execute the command

Comments