Supongamos que tengo una carpeta que contiene algunos archivos y algunas carpetas (los archivos pueden ser de cualquier tipo). Y quiero mover / copiar algunos de esos archivos y carpetas usando mv
/ cp
command. ¿Hay alguna forma de que pueda seleccionar algunos de ellos al azar, tal como hacemos la selección con la tecla Ctrl y mover / copiar usando la terminal? No puedo usar comodines ni la expresión regular, ya que quiero seleccionar archivos de diferentes tipos, y sus nombres tienen una pequeña cantidad de similitudes.
command-line
bash
cp
mv
MikhilMC
fuente
fuente
cp -t /dest/ file{1,2,3}
o para rangoscp -t /dest/ file{1..3}
. Funciona también para argumentos no numéricos y combinaciones, por ejemplo, secp -t /dest/ f{ile,ly}.{csv,txt}
ejecutacp -t /dest/ file.txt file.csv fly.txt fly.csv
. Tenga cuidado al sobrescribir las cosas si la posición es importante, pero las encuentro útiles.Respuestas:
Si desea mover o copiar todos los archivos al mismo directorio, puede usar la
-t
opción decp
omv
, pero esto significará que debe escribir / suministrar cada nombre de archivo como argumento. Funciona de la siguiente manera, con tantos archivos como argumentos desee:o
Esto es bastante laborioso, pero escribir los nombres de los archivos puede ser más fácil usando la finalización de pestañas de Bash .
Alternativamente, el siguiente script bash encontrará todos los archivos en un directorio, dado como el primer argumento, y copiará los archivos seleccionados en el directorio de destino, dado como el segundo argumento.
Comprueba cada archivo y le pregunta si desea copiar ese archivo. Al final de la selección de archivos, muestra una lista de los archivos seleccionados y le pregunta si desea copiarlos en el directorio de destino:
Tenga en cuenta que no hay errores al verificar en este script si el directorio de destino existe o si ha ingresado los argumentos correctos.
fuente
Aquí hay un script que selecciona un conjunto aleatorio de archivos / directorios para copiar. Puede tratar con nombres de archivos arbitrarios, incluso aquellos que contienen líneas nuevas y espacios. Guarde el script como
~/bin/randomCopy.sh
, hágalo ejecutable (chmod a+x ~/bin/randomCopy.sh
) y luego ejecútelo, dándole el directorio de origen como primer argumento, el directorio de destino como el segundo y la cantidad de archivos / directorios (el script no diferencia entre archivos y directorios, como solicitó) para ser copiado. Por ejemplo, para copiar 5 archivos o directorios aleatorios de/foo
a/bar
:La secuencia de comandos:
Tenga en cuenta que esto sobrescribirá los archivos existentes si existe alguno con el mismo nombre de archivo en el directorio de destino.
fuente
Tal vez intente usar algo como Midnight Commander ? Es una aplicación de consola que proporciona características similares al administrador de archivos gráfico Nautilus.
fuente
Recientemente descubrí una solución efectiva para este problema usando xargs.
Luego escribe
Ctrl + C
. Esto funcionará seguro. Lo he probado Mediante este método podemos seleccionar archivos al igual que usar elCtrl
botón en el modo de gráficos, y copiar / mover / eliminar.fuente