[Gestión de archivos de colección de comandos de Shell] Guía de uso del comando cp del comando de copia de Linux


Columna de comandos de Shell: análisis completo de los comandos de Shell de Linux


describir


El comando cp es un comando de copia de archivos de uso común en Linux, que se utiliza para copiar uno o más archivos o directorios a una ubicación de destino específica. Su sintaxis básica es la siguiente:

cp [选项] 源文件 目标文件

Entre ellos, 源文件representa la ruta del archivo o directorio que se va a copiar y 目标文件representa la ruta del archivo o directorio copiado.

Las opciones comunes incluyen:

  • -r: copia recursivamente un directorio completo y sus subdirectorios.
  • -p: Preserva las propiedades del archivo fuente, incluidos los permisos del archivo, el propietario, el grupo, la marca de tiempo, etc.
  • -f: Fuerce la copia, es decir, sobrescriba el archivo de destino existente.
  • -i: Copia interactiva, si el archivo de destino ya existe, se le preguntará si desea sobrescribirlo.
  • -v: Muestra el proceso de copia detallado.

Las siguientes son las principales funciones y uso del comando cp:

  1. Copiar archivos: copie uno o más archivos a la ubicación de destino especificada. Por ejemplo, cp file1.txt file2.txtcopie archivo1.txt a archivo2.txt.

  2. Copiar directorio: use -rla opción para copiar recursivamente un directorio completo y sus subdirectorios. Por ejemplo, cp -r dir1 dir2copie el directorio dir1 y todos sus subdirectorios y archivos al directorio dir2.

  3. Preservar propiedades: utilice -pla opción para conservar las propiedades del archivo fuente, incluidos los permisos del archivo, el propietario, el grupo, la marca de tiempo y más. Por ejemplo, cp -p file1.txt file2.txtcopie file1.txt a file2.txt y conserve sus propiedades.

  4. Forzar copia: utilice -fla opción para forzar la copia, es decir, sobrescribir el archivo de destino existente. Por ejemplo, cp -f file1.txt file2.txtcopie el archivo 1.txt al archivo 2.txt. Si el archivo 2.txt ya existe, se sobrescribirá.

  5. Copia interactiva: utilice -ila opción para realizar una copia interactiva. Si el archivo de destino ya existe, se le preguntará si desea sobrescribirlo. Por ejemplo, cp -i file1.txt file2.txtcopie el archivo 1.txt al archivo 2.txt. Si el archivo 2.txt ya existe, se le preguntará si desea sobrescribirlo.

  6. Mostrar detalles: utilice -vla opción para mostrar detalles del proceso de copia. Por ejemplo, cp -v file1.txt file2.txtcopie archivo1.txt a archivo2.txt y muestre los detalles de la copia.

Además de las opciones comunes anteriores, el comando cp también admite algunas otras opciones. Puede man cpver el documento de ayuda completo a través del comando.


Formato de sintaxis

cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录

Descripción de parámetros

  • -rO bien --recursive: copie todo el directorio de forma recursiva.
  • -pO bien --preserve: conservar las propiedades del archivo fuente, incluidos los permisos del archivo, el propietario, el grupo, la marca de tiempo, etc.
  • -fO bien --force: fuerce la copia, sobrescribiendo el archivo de destino existente.
  • -iO --interactive: copia interactiva, pregunta si se sobrescribe el archivo de destino existente.
  • -vO --verbose: Mostrar el proceso de copia detallado.
  • -uO bien --update: copie solo los archivos más nuevos del archivo de origen al directorio de destino.
  • -lO bien --link: cree un vínculo físico en lugar de copiar el archivo.
  • -sO --symbolic-link: cree un enlace simbólico en lugar de copiar el archivo.

condición de error

  • Si el archivo fuente no existe, se muestra un mensaje de error y se finaliza el proceso de copia.
  • Si el archivo de destino ya existe y no se utiliza el parámetro -fo -i, se muestra un mensaje de error y se finaliza el proceso de copia.
  • Si no hay derechos suficientes para la operación de copia, se muestra un mensaje de error y se finaliza el proceso de copia.

Precauciones

Hay algunas cosas a tener en cuenta al utilizar el comando cp del shell de Linux:

  1. Al copiar un solo archivo, el archivo de destino puede ser un archivo existente o un nombre de archivo nuevo. Si el archivo de destino ya existe y no se utiliza ningún parámetro -fo -i, la operación de copia finalizará y el archivo de destino no se sobrescribirá.

  2. Al copiar varios archivos, el archivo de destino debe ser un directorio. Si el archivo de destino es un directorio existente, el archivo de origen se copiará a ese directorio. Si el archivo de destino no existe, se crea el directorio y luego se copia en él el archivo de origen.

  3. Utilice -rel --recursiveparámetro o para copiar archivos de forma recursiva en un directorio completo y sus subdirectorios. Si no se utiliza este parámetro, el comando cp informará un error cuando el archivo fuente sea un directorio.

  4. Utilice -pel parámetro o --preservepara conservar las propiedades del archivo fuente, incluidos los permisos del archivo, el propietario, el grupo, la marca de tiempo, etc. Si no se utiliza este parámetro, el archivo copiado utilizará los atributos predeterminados.

  5. Utilice -fel parámetro o --forcepara forzar la copia incluso si el archivo de destino ya existe. Tenga cuidado al utilizar este parámetro, ya que sobrescribirá un archivo de destino existente.

  6. Utilice el parámetro -io --interactivepara realizar una copia interactiva, es decir, se le preguntará si desea sobrescribir el archivo de destino existente durante el proceso de copia.

  7. Utilice -vel parámetro o --verbosepara mostrar el proceso de copia detallado, incluidos los nombres de los archivos copiados y las rutas de destino.

  8. Utilice -uel parámetro o --updatepara copiar solo los archivos más nuevos del archivo de origen al directorio de destino. Si los archivos de origen y de destino tienen la misma marca de tiempo, no se realizará ninguna operación de copia.

  9. Utilice el parámetro -lo --linkpara crear un vínculo físico en lugar de copiar el archivo. Un enlace físico se refiere a varios archivos que comparten los mismos datos. Si se modifica un archivo, otros archivos también se verán afectados.

  10. Utilice el parámetro -so --symbolic-linkpara crear un enlace simbólico en lugar de copiar el archivo. Un enlace simbólico es un acceso directo de un archivo a otro archivo o directorio.

  11. Durante el proceso de copia, si no tiene permisos suficientes para realizar la operación de copia, se mostrará un mensaje de error y se finalizará el proceso de copia.

En resumen, cuando utilice el comando cp, debe prestar atención a la existencia del archivo de destino, el tipo de archivo de destino cuando utilice una copia recursiva, la necesidad de conservar atributos, la elección de copia forzada y copia interactiva, la necesidad para mostrar información detallada y los problemas de permisos esperan.


implementación subyacente

En los sistemas Linux, el comando cp se implementa mediante llamadas al sistema. La llamada al sistema es un mecanismo de interacción entre los programas del usuario y el kernel del sistema operativo. A través de las llamadas al sistema, los programas del usuario pueden solicitar al kernel del sistema operativo que realice operaciones específicas.

Específicamente, cuando un usuario ingresa el comando cp en el shell, el shell analiza el comando y llama a la llamada del sistema exec para ejecutar el comando cp. En la llamada al sistema ejecutivo, el archivo ejecutable del comando cp se carga en la memoria y los parámetros de la línea de comando se pasan al archivo ejecutable.

El archivo ejecutable del comando cp analizará los parámetros de la línea de comando y realizará las operaciones correspondientes en función de los parámetros. En la implementación subyacente, el comando cp utiliza la llamada al sistema open para abrir el archivo fuente, la llamada al sistema read para leer el contenido del archivo fuente y luego la llamada al sistema write para escribir el contenido en el archivo de destino. Si es necesario copiar un directorio, el comando cp atraviesa los archivos del directorio utilizando las llamadas al sistema opendir y readdir y se llama a sí mismo de forma recursiva para copiar archivos en subdirectorios.

Al copiar archivos, el comando cp también puede usar la llamada al sistema fcntl para configurar atributos de archivo como permisos de archivo, propietario, grupo, etc. Esto conserva las propiedades del archivo fuente.

Cabe señalar que la implementación subyacente del comando cp no copia directamente el contenido del archivo, sino que implementa la operación de copia leyendo el contenido del archivo fuente y luego escribiendo en el archivo de destino. Esto garantiza la integridad de los datos durante la copia y preserva las propiedades de los archivos de origen.

En resumen, la capa inferior del comando cp se implementa mediante llamadas al sistema y la operación de copia se completa leyendo el contenido del archivo fuente y luego escribiéndolo en el archivo de destino.


Ejemplo

Ejemplo 1

Copie los archivos al directorio especificado:

Orden:

cp file1.txt /home/user/documents/

Explicación:
Copie el archivo file1.txt al directorio /home/user/documents/.

Ejemplo 2

Copie un directorio completo de forma recursiva:

Orden:

cp -r dir1 /home/user/documents/

Explicación:
Copie el directorio dir1 y todos sus subdirectorios y archivos al directorio /home/user/documents/.

Ejemplo tres

Preservar los atributos del archivo fuente:

Orden:

cp -p file1.txt file2.txt

Explicación:
Copie file1.txt a file2.txt y conserve los atributos de file1.txt, incluidos permisos de archivo, propietario, grupo, marca de tiempo, etc.

Ejemplo 4

Forzar copia, sobrescribiendo archivos de destino existentes:

Orden:

cp -f file1.txt file2.txt

Explicación:
Copie el archivo 1.txt al archivo 2.txt. Si el archivo 2.txt ya existe, se sobrescribirá.

Ejemplo cinco

Copia interactiva, pregunta si se debe sobrescribir el archivo de destino existente:

Orden:

cp -i file1.txt file2.txt

Explicación:
Copie el archivo 1.txt al archivo 2.txt. Si el archivo 2.txt ya existe, se le preguntará si desea sobrescribirlo.

Ejemplo 6

Mostrar proceso de copia detallado:

Orden:

cp -v file1.txt file2.txt

Explicación:
Copie el archivo 1.txt al archivo 2.txt y muestre los detalles de la copia.

Ejemplo 7

Copie varios archivos al directorio de destino:

Orden:

cp file1.txt file2.txt /home/user/documents/

Explicación:
Copie los archivos file1.txt y file2.txt al directorio /home/user/documents/.



Conclusión

Durante nuestra exploración, obtuvimos una comprensión profunda del poder y la amplia aplicación de los comandos de Shell. Sin embargo, aprender estas técnicas es sólo el comienzo. El verdadero poder proviene de cómo los integra en su rutina diaria para aumentar la eficiencia y la productividad.

La psicología nos dice que el aprendizaje es un proceso continuo y activo. Por lo tanto, te animo a que no sólo leas y comprendas estos comandos, sino que también los practiques. Intente crear sus propios comandos y domine gradualmente la programación del shell para que se convierta en parte de su rutina diaria.

Además, recuerda que compartir es una parte muy importante del proceso de aprendizaje. Si encuentra útil este blog, no dude en darle me gusta y dejar un comentario. Compartir los problemas o las experiencias interesantes que encontró al utilizar los comandos de Shell puede ayudar a que más personas aprendan de ellos.
Además, también le invito a marcar este blog como favorito y volver a consultarlo en cualquier momento. Porque el repaso y la práctica repetida también son las claves para consolidar conocimientos y mejorar habilidades.

最后,请记住:每个人都可以通过持续学习和实践成为Shell编程专家。我期待看到你在这个旅途中取得更大进步!


阅读我的CSDN主页,解锁更多精彩内容:泡沫的CSDN主页

在这里插入图片描述

Supongo que te gusta

Origin blog.csdn.net/qq_21438461/article/details/131360933
Recomendado
Clasificación