Bulk files rename shell script for Linux

If you need to make a bulk files rename on Linux you could use the following Bash Shell script:

#!/bin/bash

# Specify the directory where the files are located
directory="/home/user/Videos/2023-08-18"

# Change to the directory
cd "$directory"

# Iterate over the files matching the pattern and rename them
for file in [0-9]*.mp4; do
    new_filename=$(echo "$file" | sed -E "s/^([0-9]+)\.mp4$/_name-prefix-\1.mp4/")
    mv -v "$file" "$new_filename"
done

Just replace directory variable value to an actual path to folder with *.mp4 files on your system.

Replace _name-prefix- with a desired file names prefix.

You could use the following Gist: with bulk mp4 files rename shell script.

Check out Video tutorial on how to Bulk files rename in a bash shell script for Linux.

Generate .htaccess config file using tee shell command

If you are using Docker setup for Yii2 Advanced application template to build REST API as I do, you could be interested in the command below:

tee /app/api/web/.htaccess <<EOF
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php
EOF

it is generating .htaccess configuration file for Apache web server to redirect all requests from not existing files or directories to index.php file in API web application inside Docker container.

Multiple lines below starting < and closing EOF are the configuration file content. Such multiple lines syntax is called heredoc. You could choose any other identifier (one word in upper case letters) instead of EOF if you want.

Web server Apache Mod_rewrite module should be installed and enabled to make it work.

Docker network declared as external could not be found

I’ve faced the following error running CoreShop 3.0.2 demo in a Docker running command:

docker-compose up -d

I’ve got the following error:

network cors_dev declared as external, but could not be found

To fix it run the commands below:

docker network create "cors_dev"
docker-compose up -d

I hope this will save several minutes of your time.

Error 500: Attempted to load class “Twig_Function” from the global namespace. Did you forget a “use” statement?

During the Pimcore update from older versions to the most recent 10.5 at this time I’ve got the following errpr:

Attempted to load class "Twig_Function" from the global namespace. Did you forget a "use" statement?

To fix it add the following use statement to your class:

use Twig\TwigFunction;

And replace all Twig_Function to TwigFunction in your php class file code.

Git: search commits by author

To search commits by the author you can use the following command:

# git log --author="Taras Shkodenko"

where Taras Shkodenko example author name.

To get the list of all authors in a current Git repository use the useful command below:

# git shortlog -sne --all

Git: how to stash / unstash not commited changes

Git has a useful feature. You can stash not committed changes and then re-apply them. It helps you to restore the working directory and the index, to a clean working directory as it was before your not commited changes.

To stash your changes run a command below:

# git stash

To apply (unstash) your changes run a command below:

# git stash apply

To view list of stashes run a following command:

# git stash list

Read more about git stash on a documentation page.