diff --git a/build/.gitignore b/build/.gitignore
index d12a4fac0962b749f028868d586af8f30ea96ea8..9e7d7973765efaffce536f16cc817e61173e6403 100644
--- a/build/.gitignore
+++ b/build/.gitignore
@@ -2,4 +2,5 @@
 *
 # Except these files
 !.gitignore
-!.uninstall-from-cmake.sh
+!uninstall-from-cmake.sh
+!clean.sh
\ No newline at end of file
diff --git a/build/clean.sh b/build/clean.sh
new file mode 100755
index 0000000000000000000000000000000000000000..42effbc058d7d008870a64ccafba2dfc025e778f
--- /dev/null
+++ b/build/clean.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# Navigating to the script's directory (if needed)
+# cd "$(dirname "$0")"
+
+# Exclude files from deletion
+excludes=( ".gitignore" "uninstall-from-cmake.sh" "clean.sh" )
+
+# Create the find command excluding specified files
+find_command="find . -mindepth 1"
+for exclude in "${excludes[@]}"; do
+    find_command+=" ! -name $exclude"
+done
+
+# Append action to delete
+find_command+=" -delete"
+
+# Execute the command
+eval $find_command
+
+echo "Directory cleaned, except for specified exclusions."
diff --git a/build/.uninstall-from-cmake.sh b/build/uninstall-from-cmake.sh
old mode 100644
new mode 100755
similarity index 100%
rename from build/.uninstall-from-cmake.sh
rename to build/uninstall-from-cmake.sh
diff --git a/modules/pybind11 b/modules/pybind11
index 8a099e44b3d5f85b20f05828d919d2332a8de841..65bbd4e0b210655a981be91ae2d3daca358f30f8 160000
--- a/modules/pybind11
+++ b/modules/pybind11
@@ -1 +1 @@
-Subproject commit 8a099e44b3d5f85b20f05828d919d2332a8de841
+Subproject commit 65bbd4e0b210655a981be91ae2d3daca358f30f8