Esta es la respuesta más válida que encomtrarás aportar, sin embargo obsérvala pausadamente y valora si se puede adaptar a tu proyecto.
Solución:
Antes de comenzar, realmente recomiendo que haga una copia de seguridad de la carpeta en la que está tratando de hacer esto.
cd
en la carpeta en la que intenta operar y luego:
for file in *; do
if [[ -f "$file" ]]; then
mkdir "$file%.*"
mv "$file" "$file%.*"
fi
done
- Bucle sobre todo (
*
) los archivos en la carpeta actual. - crear una carpeta (
mkdir
) del archivo sin su extensión$file%.*
- Muevete (
mv
) el archivo en esa carpeta.
Tenga en cuenta que debe usar comillas porque algunos archivos pueden tener espacios en sus nombres.
Puede escribir esto en la terminal o crear un archivo de script.
No tengo suficiente reputación para agregar esto como un comentario a la increíble respuesta anterior de @Ammar Alammar, pero en caso de que alguien quiera pegar esto directamente en un indicador de terminal en lugar de guardarlo como un script, esta línea debe hacer el truco:
for file in *; do if [[ -f "$file" ]]; then mkdir "$file%.*"; mv "$file" "$file%.*"; fi; done
Si eres capaz, eres capaz de dejar un escrito acerca de qué te ha impresionado de este post.