The find command - a flexible and powerful tool

The find command in Linux is one of the most versatile utilities for locating files and directories based on complex criteria. Whether we are searching for files by name, size, modification date, permissions, or even content, find provides unparalleled flexibility. It operates recursively through directories, allowing us to pinpoint specific files, execute actions (like deletion or renaming), or apply transformations (such as changing permissions). With options like -name, -size, -mtime, -user, -exec, and -delete, find can handle everything from simple searches to intricate automation tasks. Its ability to integrate with other commands via pipes (|) or -exec makes it indispensable for system administration tasks, including debugging, data management, and automation. ...

April 4, 2026 · 11 min · Dimitar Zahariev

String Escaping in Jenkins

Sometimes, working with variables, especially ones containing special characters (like $), we need to be more careful. NOTE: If you want to test the following, you will need a machine with Docker and Jenkins installed. Let’s take for an example this pipeline in Jenkins: pipeline { agent any environment { PASS='Pa$$word' } stages { stage('Clean') { steps { sh 'docker container rm --force $(docker container ls -aq) || true' } } stage('Escape Test #1 - NOK') { steps { sh 'docker container run -d --name db1 -e MYSQL_ROOT_PASSWORD=Pa$$word mariadb' } } stage('Escape Test #2 - NOK') { steps { sh "docker container run -d --name db2 -e MYSQL_ROOT_PASSWORD=Pa\$\$word mariadb" } } stage('Escape Test #3 - OK') { steps { sh "docker container run -d --name db3 -e MYSQL_ROOT_PASSWORD='Pa\$\$word' mariadb" } } stage('Escape Test #4 - OK') { steps { sh 'docker container run -d --name db4 -e MYSQL_ROOT_PASSWORD=\'Pa\$\$word\' mariadb' } } stage('Escape Test #5 - OK') { steps { sh '''docker container run -d --name db5 -e MYSQL_ROOT_PASSWORD='Pa$$word' mariadb''' } } stage('Escape Test #6 - OK') { steps { sh 'docker container run -d --name db6 -e MYSQL_ROOT_PASSWORD=$PASS mariadb' } } } } NOTE: MYSQL_ROOT_PASSWORD in the above example can be replaced with MARIADB_ROOT_PASSWORD. ...

March 19, 2026 · 3 min · Dimitar Zahariev

Nested Virtualization

What is it? We talk about nested virtualization when for some reason we need to work with a virtual machine (L2) inside another virtual machine (L1). The possibilities for nested virtualization depend mainly on the hardware and operating system of the host, but also on the combination of virtualization solutions used (at the first and second levels). The next few sections provide a brief overview of the steps required to enable nested virtualization under various virtualization solutions. ...

November 11, 2025 · 2 min · Dimitar Zahariev

NAT Switch in Hyper-V

Switch Types Depending on the installation/activation method of the Hyper-V role and the target operating system, such as version and variant, we may find ourselves in a situation without any pre-created switch or with only the so-called Default Switch. The latter usually appears under consumer versions of Windows. Before we pay a little more attention to it, let’s recall what types of switches Hyper-V supports: Private Switch - allows communication only between virtual machines attached to it Internal Switch - allows communication between virtual machines attached to it and the host External Switch - allows communication between virtual machines attached to it, the host, and all other network devices attached to the same network as the network card associated with the switch Perhaps it is more appropriate to compare them in a table like this: ...

September 15, 2025 · 6 min · Dimitar Zahariev

Hyper-V on Windows Home

Although the Hyper-V role is not officially available under Windows Home, it can still be added and enabled. To do this, two steps must be performed: First, all packages related to Hyper-V are discovered and added And then the role itself is activated The only way to perform the above procedure is through a series of commands. To do this, you must start Command Prompt, but with the Run as administrator option. ...

September 12, 2025 · 2 min · Dimitar Zahariev