¿Cómo puedo mover archivos y directorios a la carpeta principal en Linux?
En Linux (Ubuntu), ¿cómo se mueven todos los archivos y directorios al directorio principal?
En Linux (Ubuntu), ¿cómo se mueven todos los archivos y directorios al directorio principal?
He venido aquí porque yo también soy nuevo en este tema. Por alguna razón lo anterior no me sirvió. Lo que hice para mover todos los archivos de un dir a su dir padre fue:
cd to/the/dir
mv * ../
Escriba esto en el shell:
mv *.* ..
Eso mueve TODOS los archivos un nivel hacia arriba.
El carácter *
es un comodín. Así que *.deb
moverá todos los archivos .deb, y Zeitgeist.*
moverá Zeitgeist.avi y Zeitgeist.srt una carpeta hacia arriba, ya que, por supuesto, ..
indica el directorio padre.
Para mover todo, incluyendo las carpetas, etc., sólo tienes que usar *
en lugar de *.*
No puede ser más sencillo que:
mv * ../
Para mover también archivos ocultos:
mv /path/subfolder/{.,}* /path/
mv
es un comando para mover archivos, *
significa todos los archivos y carpetas y ../
es la ruta al directorio padre.
En bash se puede usar* shopt -s dotglob**para hacer que * coincida con todos los archivos y los mueva simplemente por
shopt -s dotglob; mv * ..
Esta no es la mejor solución ya que la configuración es permanente para el shell hasta que se cambie por
shopt -u dotglob
pero creo que es bueno saberlo.
Un método que no causa errores y funciona siempre:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
find . -maxdepth 2 -type f -exec mv {} .. \;
Utilicé una variación de lo anterior para mover todos los archivos de las subcarpetas a la principal.
Tenía los datos en carpetas por año, pero descubrí que usando los metadatos podía tenerlos todos en la misma carpeta, lo que facilitaba la gestión.
ej.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
No es necesario cambiar de directorio. Simplemente incluya * al final de la ruta:
mv /my/folder/child/* /my/folder/
Lo anterior sólo mueve archivos no ocultos. Para mover sólo los archivos ocultos, utilice .*
mv /my/folder/child/.* /my/folder/
Lo anterior se puede combinar en un solo comando:
mv /my/folder/child/{.,}* /my/folder/
Vea también Cómo mover todos los archivos, incluidos los ocultos, al directorio principal mediante *
Es sencillo mover todos los archivos y carpetas al directorio padre en Linux.
Ve a esa carpeta y utiliza este comando:
mv * /the full path
Por ejemplo, si tus archivos y carpetas son los siguientes
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Vaya a esa carpeta mediante cd:
cd /home/abcuser/test
mv * /home/abcuser
Todos tus archivos y carpetas se moverán a la carpeta abcuser (directorio padre).