Site Tools


generic_linux_commands

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
generic_linux_commands [2023/01/18 13:36] admingeneric_linux_commands [2026/03/25 14:01] (current) admin
Line 1: Line 1:
 ====== GENERIC LINUX COMMANDS ====== ====== GENERIC LINUX COMMANDS ======
 +
 +===== RENAME 'The' ROMS =====
 +1. Dry-run preview (generates rename list without executing):
 +<code>
 +  find /mnt/DOCS1/ROMs/Library/roms -type f -name "*, The*" | sort | while IFS= read -r filepath; do
 +      dir=$(dirname "$filepath")
 +      filename=$(basename "$filepath")
 +      if echo "$filename" | grep -qP '^\w.*\+.*[,] The '; then
 +          newname=$(echo "$filename" | sed 's/\(+ \)\(.*\), The \(.*\)/\1The \2 \3/')
 +      else
 +          newname=$(echo "$filename" | sed 's/^\(.*\), The \(.*\)$/The \1 \2/')
 +      fi
 +      echo "$dir | '$filename' -> '$newname'"
 +  done
 +</code>
 +
 +2. Execute renames:
 +<code>
 +  find /mnt/DOCS1/ROMs/Library/roms -type f -name "*, The*" | sort -u | while IFS= read -r filepath; do
 +      dir=$(dirname "$filepath")
 +      filename=$(basename "$filepath")
 +      # Special case: combo pack where ", The" belongs to a subtitle within the combo
 +      if echo "$filename" | grep -qP '^\w.*\+.*[,] The '; then
 +          newname=$(echo "$filename" | sed 's/\(+ \)\(.*\), The \(.*\)/\1The \2 \3/')
 +      else
 +          newname=$(echo "$filename" | sed 's/^\(.*\), The \(.*\)$/The \1 \2/')
 +      fi
 +      if [ "$filename" != "$newname" ]; then
 +          mv -- "$filepath" "$dir/$newname"
 +          echo "Renamed: $filename"
 +      fi
 +  done
 +</code>
 +
 +Key sed patterns:
 +
 +  - Standard: s/^\(.*\), The \(.*\)$/The \1 \2/ — captures everything before , The  as \1 and everything after as \2, then prepends The
 +  - Combo pack: s/\(+ \)\(.*\), The \(.*\)/\1The \2 \3/ — moves The to before the subtitle within a +-delimited combo title
 +
 +===== RENAME 'A', 'An' ROMS =====
 +Dry-run preview:
 +<code>
 +  find /mnt/DOCS1/ROMs/Library/roms -type f \( -name "*, A *" -o -name "*, An *" \) | sort | while IFS= read -r filepath; do
 +      dir=$(dirname "$filepath")
 +      filename=$(basename "$filepath")
 +      newname=$(echo "$filename" | sed 's/^\(.*\), \(An\{0,1\}\) \(.*\)$/\2 \1 \3/')
 +      echo "'$filename'"
 +      echo "  -> '$newname'"
 +  done
 +</code>
 +
 +Execute renames:
 +<code>
 +  find /mnt/DOCS1/ROMs/Library/roms -type f \( -name "*, A *" -o -name "*, An *" \) | sort | while IFS= read -r filepath; do
 +      dir=$(dirname "$filepath")
 +      filename=$(basename "$filepath")
 +      newname=$(echo "$filename" | sed 's/^\(.*\), \(An\{0,1\}\) \(.*\)$/\2 \1 \3/')
 +      if [ "$filename" != "$newname" ]; then
 +          mv -- "$filepath" "$dir/$newname"
 +          echo "Renamed: '$filename' -> '$newname'"
 +      fi
 +  done
 +</code>
 +
 +Key sed pattern:
 +  - s/^\(.*\), \(An\{0,1\}\) \(.*\)$/\2 \1 \3/ — \(An\{0,1\}\) matches either A or An, captures it as \2, then reconstructs as \2 \1 \3
  
  
Line 8: Line 74:
  
 ===== RUN COMMAND AS ANOTHER USER ===== ===== RUN COMMAND AS ANOTHER USER =====
 +<code>
 # sudo -u zabbix /app/wcms/bin/webmonitor homepage_nocache # sudo -u zabbix /app/wcms/bin/webmonitor homepage_nocache
 </code> </code>
Line 64: Line 131:
 ===== TAR WITH EXCLUDE ===== ===== TAR WITH EXCLUDE =====
 <code> <code>
 +cd /var/lib/docker/volumes/
 +tar --exclude='fw_stack_postgres-data/_data/backups/*.gz' -cvzf fw_stack_postgres-data_`date +%Y-%m-%dT%H-%M-%S`.tgz fw_stack_postgres-data/
 +rsync -av *.tgz /workspace/backups.kargath/volumes/
 +
 $ tar cvzf filename.tar.gz /dir1/dir2 --exclude "/dir1/dir2/direxcluded" $ tar cvzf filename.tar.gz /dir1/dir2 --exclude "/dir1/dir2/direxcluded"
 </code> </code>
Line 126: Line 197:
 # tar -x ecu_3_28_5/data/private/conf/* -vzf ecu_3_28_5-2011-08-11_11-23-backup.tar.gz # tar -x ecu_3_28_5/data/private/conf/* -vzf ecu_3_28_5-2011-08-11_11-23-backup.tar.gz
 # tar -x ecu_3_28_5/core/lib/web/images/icons/asset_map/matrix_logo.gif -vzf ecu_3_28_5-2011-08-11_11-23-backup.tar.gz # tar -x ecu_3_28_5/core/lib/web/images/icons/asset_map/matrix_logo.gif -vzf ecu_3_28_5-2011-08-11_11-23-backup.tar.gz
 +</code>
 +
  
 +===== Source =====
 +commands.txt on Seagate 3TB (H:\Personal\BAK\WHD71610013\Documents\Documentation\commands.txt)
  
generic_linux_commands.1674020167.txt.gz · Last modified: by admin · Currently locked by: 172.18.0.1