Respuestas:
encontrar . -maxdepth 1 -exec mv {} .. \;
esto moverá archivos ocultos también.
Recibirá el mensaje:
mv: no se puede mover `. ' a `../. ': dispositivo o recurso ocupado
cuando intenta moverse .
(directorio actual) pero eso no causará ningún daño.
-maxdepth 1
estar seguro.
Vine aquí porque soy nuevo en este tema también. Por alguna razón, lo anterior no me funcionó. Lo que hice para mover todos los archivos de un directorio a su directorio principal fue:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Escriba esto en el shell:
mv *.* ..
Eso mueve TODOS los archivos un nivel más arriba.
El personaje *
es un comodín. Por *.deb
lo tanto , moverá todos los archivos .deb y Zeitgeist.*
moverá Zeitgeist.avi y Zeitgeist.srt una carpeta hacia arriba, ya que, por supuesto, ..
indica el directorio principal.
Para mover todo, incluidas las carpetas, etc., solo use en *
lugar de*.*
*
no *.*
incluir directorios
No puede ser más simple 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 principal.
En bash puedes usar shopt -s dotglob para hacer que * coincida con todos los archivos y moverlos simplemente
shopt -s dotglob; mv * ..
Esta no es la mejor solución ya que la configuración es permanente para el shell hasta que la cambie por
shopt -u dotglob
Pero creo que es bueno saberlo.
(shopt -s dotglob && mv * ..)
. De esa manera, la opción solo es local para esa subshell.
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 {} .. \;
Usé una variación de lo anterior para mover todos los archivos de las subcarpetas al padre.
Obtuve datos en carpetas por año, pero descubrí que al usar metadatos podría tenerlos todos en la misma carpeta, lo que facilitó la administración.
p.ej.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
Es simple mover todos los archivos y carpetas al directorio principal en Linux.
Vaya a esa carpeta y use este comando:
mv * /the full path
Por ejemplo, si sus archivos y carpetas son los siguientes:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Vaya a esa carpeta a través de cd:
cd /home/abcuser/test
mv * /home/abcuser
Todos sus archivos y carpetas se moverán a la carpeta abcuser (directorio principal).
/the full path
no funciona en Linux, tienes que escapar de espacios con /the\ full\ path
.
No hay necesidad de cambiar directorios. Solo incluye * al final del camino:
mv /my/folder/child/* /my/folder/
Arriba solo mueve archivos no ocultos. Para mover solo archivos ocultos use. *
mv /my/folder/child/.* /my/folder/
Por encima de dos se pueden combinar en un solo comando:
mv /my/folder/child/{.,}* /my/folder/
Consulte también: Cómo mover todos los archivos, incluidos los archivos ocultos, al directorio principal mediante *
cambie al subdirectorio y ejecute el siguiente comando para copiar o mover archivos.
Por ejemplo: a es el directorio principal yb es el subdirectorio, queremos mover / copiar todos los archivos de b a a (subdirectorio al directorio principal).
cd b
cp * ..
mv * ..