├── package-1
│ └── src
│ ├── controllers
│ ├── models
│ |── traits
│ └── views
├── package-2
│ └── src
│ ├── controllers
│ ├── models
│ |── traits
│ └── views
├── package-3
│ └── src
│ ├── controllers
│ ├── models
│ |── traits
│ └── views
Me gustaría cambiar recursivamente el nombre de las carpetas controladores a Controladores, modelos y Modelos
De varios artículos, por ejemplo, https://askubuntu.com/questions/56326/how-do-i-rename-a-directory-via-the-command-line y publicaciones, puedo ver que necesito usar rm. Entonces Ejecuté el siguiente comando
for i in */src/controllers/;
do mv $i /Controllers/;
done
A continuación se muestra el error al que me enfrento
mv: cannot move 'laravel-files/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-guardian-admissions/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-guardians/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-lms/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-permissions-and-roles/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-procurements/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-school-accounts/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-school-curriculum/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-school-exams/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-school-infrastructures/src/controllers/' to '/Controllers/controllers': Directory not empty
mv: cannot move 'laravel-school-streams/src/controllers/' to '/Controllers/controllers': Directory not empty
Por favor, ayúdenme a señalar dónde me estoy equivocando en la implementación
@anubhava mismo error
-Owen Kelvin
28 de marzo de 2021 a las 10:46
------------------------------------
Debido al / inicial en mv $i /Controllers/, mueves cada $i al mismo directorio, es decir, un directorio llamado Controllers en la parte superior de tu sistema de archivos.
Puede ingresar cd a cada directorio y usar una ruta relativa (cd "$i/.."; mv "$i" Controllers; cd -) o modificar las rutas usando la expansión de parámetros de bash:
for i in */src/controllers/; do
mv "$i" "${i/\/c/\/C}"
done
${i/\/c/\/C} reemplaza el primer /c por /C.
3
Esto parece estar eliminando los directorios eliminados: año académico/src/controladores/AcademicYearApiController.php eliminado: año académico/src/controladores/AcademicYearController.php eliminado: año académico/src/controladores/AcademicYearUnitLevelController.php eliminado: género/src/controladores/GenderApiController.php eliminado: género/src/controladores/GenderController. php eliminado: laravel-data-sync/src/Controladores/DataSyncController.php `
-Owen Kelvin
28/03/2021 a las 11:02
Probé el comando exactamente en su estructura de archivos de ejemplo, consulte onlinegdb.com/peej3HG7c. ¿Está seguro de que los directorios fueron eliminados? No creo que mv pueda siquiera imprimir el mensaje eliminado: ... (al menos mi versión no contiene esa cadena). ¿Podría ser que tengas un directorio que literalmente se llama eliminado: año académico?
- Socowi
28/03/2021 a las 11:10
Gracias, creo que mis comandos anteriores habían eliminado los archivos, hice un reinicio de git y usé tu comando. Funcionó de maravilla, muchas gracias
-Owen Kelvin
28/03/2021 a las 11:47
------------------------------------
Si tienes GNU paralelo instalado, puedes probar:
find . -regextype posix-extended -regex '.*/(controlers|models|traits|views)' |
parallel echo mv {} {= 's[(.*/)(.+)][ . ucfirst()]e' =}
elimine el eco si se espera el resultado.
1
Gracias por tu solución, nunca usé GNU paraMuy bien, pero me aseguraré de echarle un vistazo.
-Owen Kelvin
28/03/2021 a las 12:04