¿Cómo puedo mover solo los archivos simples (no los directorios) de una carpeta en Linux a otra carpeta usando el mv
comando?
Lo intenté mv * ~/
, pero copió todo, incluidos los directorios.
¿Cómo puedo mover solo los archivos simples (no los directorios) de una carpeta en Linux a otra carpeta usando el mv
comando?
Lo intenté mv * ~/
, pero copió todo, incluidos los directorios.
Respuestas:
Puedes probar
find . -maxdepth 1 -type f -exec mv {} destination_path \;
-exec
Soy un tipo de "usa un martillo para todo", así que uso programas de shell bourne para cosas que otros usan programas externos para ...
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
A algunas personas les gusta hacer las cosas con la menor mecanografía posible, pero soy un mecanógrafo bastante rápido y tengo cosas como esta incorporadas en mi cerebro, por lo que no es demasiado doloroso hacer esto en lugar de buscar exactamente argumentos para encontrar y ejecutar y todo eso.
YMMV, aunque ...
@Mereghost está muy cerca. Esto es lo que consigo para mover todos los archivos (incluidos los archivos ocultos), pero no los directorios:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
El .
hallazgo después asume que el directorio actual es el origen de los archivos que desea mover. Si no, el comando se puede revisar de la siguiente manera:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
Si desea mover solo archivos normales y no archivos ocultos:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
Si desea mover solo archivos ocultos y no archivos normales:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
puedes usar find
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv `find ./sourcedir/* -type f` ./destdir
find
la -exec
opción es la mejor manera de evitar el problema.