No tengo que mover las carpetas, solo los archivos.
Lo he intentado mv *
pero este comando también mueve las carpetas.
command-line
files
mv
Archit
fuente
fuente
find ... -exec mv -t "$TARGET_DIR" -- '{}' +
sería más seguro (en caso de$TARGET_DIR
que no haya directorio o la coincidencia comience-
) y más eficiente (porque no genera un nuevo subproceso para cada archivo coincidente).Creo que solo quiere mover sus archivos. Primero vaya a su directorio y use este comando, reemplace $ TARGET con su ruta de directorio de destino. Si desea copiar sus archivos, reemplácelos
mv
porcp
.si explico esto,
find . -type f
significa seleccionar todos los archivos y-exec mv {} $TARGET \;
ejecutar elmv
comando para todos los elementos seleccionados.La respuesta anterior tiene un error ... también contiene
mv
todos los archivos dentro de los subdirectorios. La solución rápida es el uso-maxdepth 1
. Entonces no recursivamentemv
archivos dentro de subdirectorios. A continuación se muestra la correcta.fuente
-type f
no previene la recurrencia.Enfoque de Python
Cuando se trata de archivos de forma recursiva,
find
es el camino a seguir. En este caso particular, no es necesario, pero se puede usar con-maxdepth 1
otras respuestas.El comando simple de Python también puede hacerlo. Aquí hay un ejemplo:
Cómo funciona esto:
fl=[f for f in os.listdir('.') if os.path.isfile(f)]
itera sobre todos los elementos queos.listdir('.')
encuentra y probamos si el elemento es un archivo que utiliza laos.path.isfile()
función.Una vez que se
fl
crea la lista de archivos, utilizamos lamap()
función. Esta función toma dos argumentos: una función y una lista de elementos; realizará la función que le dimos por cada archivo en una lista. Por lo tanto, aquí tenemos unalambda x:shutil.move(x,'./a_directory')
función anónima que moverá un archivo dado a un directorio dado, y luego tenemosfl
la lista de archivos que creamos.Para facilitar la lectura y el uso general, también podríamos reescribir esto como un script general de Python, que toma dos argumentos: directorio de origen y subdirectorio de destino.
Y el uso es así:
fuente
Si está usando zsh en lugar de bash, puede hacer esto:
Al
(.)
final se llama calificador global; el.
interior significa específicamente que solo coincida con los archivos normales.Hacer un
mv *(.) "$target"
es rápido y práctico. Sin embargo, si está haciendo esto como parte de un script, es posible que desee considerar escribir algo como lo que sugirieron Frxstrem y David Forestermv -t "$target" -- *(.)
, para manejar mejor los casos de esquina que pueden surgir en el uso de otras personas.fuente
mv -t "$TARGET" -- "$SOURCE"/*(.)
sería más seguro (en caso de que"$TARGET"
comience con-
un directorio o no). ¡Sin embargo, me gusta la solución zsh!Para mover todo excepto los directorios de un
source-dir
directorio a otrodestination-dir
, en Python:Ver Ejecutar archivo Python en la Terminal .
fuente
import mypackage
antesfrom mypackage import ...
from __future__
importaciones especiales y lasfrom pathlib
importaciones ordinarias .import module
debe ser el primero (que es la biblioteca y las importaciones de terceros)from module import object
debe ser el último (local / biblioteca específica)Yo usaría
esto funcionará siempre que sus carpetas no tengan extensiones.
fuente