¿Cómo puedo mover los archivos contenidos en todos los subdirectorios al directorio actual y luego eliminar los subdirectorios vacíos?
encontré esta pregunta , pero adaptando la respuesta a:
mv * .
no funcionó; Recibí muchas advertencias que parecían:
mv: wil and ./wil are identical
Los archivos contenidos en los subdirectorios tienen nombres únicos.
fuente
-n, --no-clobber
: no sobrescribir un archivo existente. Te podría interesar-b, --backup
, también.Prueba esto:
Más información: pruebe la instrucción de búsqueda solo, debería darle una lista con todos los archivos que desea mover (omita el
-print0
). Ejemplo:con
-print0
yxargs
ahora estás creando una lista de sentencias para ser ejecutadas. los-J %
bandera significa, inserte el elemento de lista aquí, por lo quemv $FILE .
Se ejecuta para cada archivo encontrado.Lo anterior está funcionando para los BSD xargs. Si está utilizando la versión GNU (Linux)
-I %
en lugar de-J %
fuente
Bash 4:
fuente
1 truco rápido, solo funciona si sus archivos tienen extensiones (con un punto):
fuente
Solo ejecuta este comando :-)
mv **/*.* .
fuente
.
en su nombre, ¿lo hará?