Tengo una gran cantidad de archivos pequeños, f, organizados en una estructura de directorios como esta:
/A/B/C/f
Hay 11 directorios en el nivel de A, cada uno con aproximadamente 100 directorios en el nivel de B, cada uno con aproximadamente 30 directorios en el nivel de C, cada uno con un archivo f.
¿Cómo muevo todos los archivos un nivel más arriba? Por ejemplo, dado este conjunto de archivos ...
/ A / B / C / f1
/ A / B / C / f2
/ A / B / C / f3
/ A / B / C / f4
Quiero que el directorio /A/B/
contenga 4 archivos, de f1 a f4. Eliminar directorios C no es necesario.
Estoy esperando que esto es un problema resuelto, posiblemente con la participación find
, xargs
y whatnot
. ¿Algunas ideas?
Salud,
James
Mi primera suposición es
siempre y cuando no lo especifique
-depth
, debería estar bien. NO lo he probado, así que pruébalo antes de comprometerte.fuente
mv
comandos se ejecutan en el directorio actual, por lo..
que no hace lo que espera. Vea mi respuesta para soluciones. @ jl6: el shell no tiene nada que ver..
, eso lo maneja el núcleo.Si sólo desea mover los archivos que se encuentran en los directorios de las hojas (es decir, que no quiere moverse
/A/B/file
a/A
siB
contiene subdirectorios), entonces aquí hay un par de maneras de hacerlo:Ambos requieren esto
Este funciona:
Esto será más rápido, pero no le gustan los directorios de origen vacíos:
fuente