• No se han encontrado resultados

Manejo de ArchivosManejo de Archivos

In document Curso Basico de UNIX (página 48-58)

Manejo de Archivos

Copia de Archivos Copia de Archivos

Mover, cambiar de nombre Mover, cambiar de nombre Enlaces "hard"

Enlaces "hard" Enlaces simbólicos Enlaces simbólicos Opciones del comando Opciones del comando lsls Cambio de dueño y grupo Cambio de dueño y grupo Modos de permisos

Modos de permisos

Listado de permisos de los directorios Listado de permisos de los directorios Cambio de permisos Cambio de permisos basename, dirname basename, dirname Archivos de dispositivos Archivos de dispositivos El comando "mesg" El comando "mesg" Otros dispositivos Otros dispositivos Preguntas y Ejercicios Preguntas y Ejercicios Bibliografía y Referencias Bibliografía y Referencias • • • • •

• En los ejemplos siguientes se asume al usuario ubicado en En los ejemplos siguientes se asume al usuario ubicado en su directorio personal, elsu directorio personal, el

cual contiene los archivos

cual contiene los archivos notanota yy LEAMELEAME. El resultado de . El resultado de cada ejemplo debecada ejemplo debe comprobarse mediante comandos tales como

comprobarse mediante comandos tales como pwdpwd,ls,ls,, catcat oo moremore..

•Copia de archivos.Copia de archivos. •

• cp nota nota.copiacp nota nota.copia •

•copia el archivocopia el archivo notanota enen nota.copianota.copia. Si el directorio propio del . Si el directorio propio del usuario esusuario es /home//home/

usuario1 usuario1,,

• cp cp ./nota /home/usuario1/nota.copi./nota /home/usuario1/nota.copiaa •

•hace lo mismo indicando las rutas. Si el archivo destino existe lo sobreescribe y realiza lahace lo mismo indicando las rutas. Si el archivo destino existe lo sobreescribe y realiza la

copia sin comentario ni advertencia. copia sin comentario ni advertencia.

• • •

• mkdir dir1mkdir dir1 •

• cp nota dir1cp nota dir1 •

•si el destino es un directorio, el archivo se copia en ese directorio.si el destino es un directorio, el archivo se copia en ese directorio. •

• •

• cp nota LEAME dir1cp nota LEAME dir1 •

•pueden copiarse varios archivos hacia un directorio.pueden copiarse varios archivos hacia un directorio. •

• •

• mkdir dir2mkdir dir2 •

• touch dir2/arch2 dir2/arch3touch dir2/arch2 dir2/arch3 •

• ls dir2ls dir2 •

• cp dir2/* .cp dir2/* . •

•copia todos los archivos encopia todos los archivos en dir2dir2 hacia el directorio actual.hacia el directorio actual. •

• •

• cp -r dir1 dir3cp -r dir1 dir3 •

• ls -l dir3ls -l dir3 •

•copia el directoriocopia el directorio dir1dir1 y todo el contenido en ely todo el contenido en el dir3dir3.. •

• •

• rmdir dir3rmdir dir3 •

•fracasa porquefracasa porque dir3dir3 no está vacío.no está vacío. •

• rm -r dir3rm -r dir3 •

•con la opcióncon la opción -r-r, "recursivo", se puede borrar , "recursivo", se puede borrar completamecompletamente un directorio y nte un directorio y todo sutodo su

contenido, sean estos archivos o

contenido, sean estos archivos o subdirectorios.subdirectorios.

• • •

• rm -r dir1/* dir2rm -r dir1/* dir2 •

•borra todos los archivos bajoborra todos los archivos bajo dir1dir1 yy dir2dir2; borra también el directorio; borra también el directorio dir2dir2 pero nopero no

el

el dir1dir1..

• • •

• rm arch? nota.copiarm arch? nota.copia •

•borra del directorio actual los archivosborra del directorio actual los archivos arch1arch1,, arch2arch2, .., y, .., y nota.copianota.copia.. •

•Mover, cambiar de nombre.Mover, cambiar de nombre. •

• echo "Hola todos" > holaecho "Hola todos" > hola •

• cat holacat hola •

• mv hola saludomv hola saludo •

• cat saludocat saludo •

•mvmv cambia el nombre del archivocambia el nombre del archivo holahola por el depor el de saludosaludo.. •

• •

• mv saludo dir1/saludo.1mv saludo dir1/saludo.1 •

•mueve hacia otro directorio cambiando el nombre.mueve hacia otro directorio cambiando el nombre. •

• •

• mv dir1 dirnuevomv dir1 dirnuevo •

•cambia de nombre archivos o directorios.cambia de nombre archivos o directorios. •

• •

• rm -r dirnuevorm -r dirnuevo •

•eliminaelimina dirnuevodirnuevo y todos sus archivos.y todos sus archivos. •

•Enlaces "hard".Enlaces "hard". •

•Un enlace "hard" (hard liUn enlace "hard" (hard link) es una nueva referencia a nk) es una nueva referencia a un mismo archivo; consiste en unaun mismo archivo; consiste en una

nueva entrada de directorio que apunta a

nueva entrada de directorio que apunta a un archivo ya existente y un archivo ya existente y apuntado desdeapuntado desde otra entrada de directorio. El contenido se encuentra en un solo lado, pero el archivo otra entrada de directorio. El contenido se encuentra en un solo lado, pero el archivo puede ser accedido desde varios

puede ser accedido desde varios lugares, eventualmente con diferentes nombres.lugares, eventualmente con diferentes nombres.

• echo 'Hola todos de nuevo!' > adiosecho 'Hola todos de nuevo!' > adios •

• ln adios adios.ln0ln adios adios.ln0 •

•ln crea un segundo nombre referido al ln crea un segundo nombre referido al mismo archivo; no se hace copia, crea mismo archivo; no se hace copia, crea un enlaceun enlace

(link). Verificar que (link). Verificar que

•muestra un conteo de 2 en muestra un conteo de 2 en la columna de enlaces. Al crear el enlace con el la columna de enlaces. Al crear el enlace con el comandocomando lnln,,

observar que el archivo existente va

observar que el archivo existente va en primer lugar, luego uno o más nombres deen primer lugar, luego uno o más nombres de enlaces a crear.

enlaces a crear.

• • •

• ln adios adios.ln1ln adios adios.ln1 •

• ln adios adios.ln2ln adios adios.ln2 •

• ls -l adios*ls -l adios* •

•muestra el conteo de enlaces hard en muestra el conteo de enlaces hard en estos archivos.estos archivos. •

• •

• mkdir dir2mkdir dir2 •

• ln adios dir2/adiosln adios dir2/adios •

•hace aparecer enhace aparecer en dir2dir2 un enlace llamadoun enlace llamado adiosadios hacia el archivohacia el archivo adiosadios del directoriodel directorio

actual. Un enlace hard puede hacer aparecer un

actual. Un enlace hard puede hacer aparecer un mismo archivo en más de unmismo archivo en más de un directorio, con igual o distinto nombre; el contenido está en un solo lado, no está directorio, con igual o distinto nombre; el contenido está en un solo lado, no está repetido. repetido. • • • • rm adios*rm adios* • • ls -l dir2/adiosls -l dir2/adios •

•Cuando se borra un archivo con varios enlaces, sólo se borra el enlace. El archivo esCuando se borra un archivo con varios enlaces, sólo se borra el enlace. El archivo es

realmente borrado sólo cuando desaparece el último enlace. realmente borrado sólo cuando desaparece el último enlace.

• ln dir2 dir2lnln dir2 dir2ln •

•da error; no se puede crear un enlace hard para un directorio.da error; no se puede crear un enlace hard para un directorio. •

•Enlaces simbólicos.Enlaces simbólicos. •

•Un enlace simbólico (symbolic link) es un archivo que apunta a otro archivo o directorio.Un enlace simbólico (symbolic link) es un archivo que apunta a otro archivo o directorio.

El archivo de enlace simbólico contiene solamen

El archivo de enlace simbólico contiene solamente la ruta del te la ruta del otro archivo ootro archivo o directorio.

directorio.

• ln -s nota nota.ls0ln -s nota nota.ls0 •

•creacrea nota.ls0nota.ls0 como enlace simbólico.como enlace simbólico. •

• •

• ln -s dir2 dir2lsln -s dir2 dir2ls •

•creacrea dir2lsdir2ls como enlace simbólico hacia un directorio.como enlace simbólico hacia un directorio. •

• ls -lls -l •

•muestra la letramuestra la letra ll en el tipo de archivo para indicar que es un en el tipo de archivo para indicar que es un enlace simbólico.enlace simbólico. •

• ls dir2ls dir2 •

• ls dir2lsls dir2ls •

•muestran el mismo contenido de muestran el mismo contenido de archivos.archivos. •

• ls -l dir2lsls -l dir2ls •

•muestra que es un enlace simbólico e indica muestra que es un enlace simbólico e indica hacia donde apunta.hacia donde apunta. • • • • cd dir2lscd dir2ls • • ls -lls -l •

•muestra el contenido demuestra el contenido de dir2dir2, enlazado desde, enlazado desde dir2lsdir2ls.. •

• pwdpwd •

• /bin/pwd/bin/pwd •

•muestra el directorio verdadero, no el muestra el directorio verdadero, no el enlace simbólico;enlace simbólico; pwdpwd indica la ruta por la que seindica la ruta por la que se

llegó al directorio,

llegó al directorio, /bin/pwd/bin/pwd indica la ruta de acceso al verdadero directorio.indica la ruta de acceso al verdadero directorio. Conviene usar

Conviene usar /bin/pwd/bin/pwd para evitar ser engañado por enlaces simbólicos apara evitar ser engañado por enlaces simbólicos a directorios. El comando

directorios. El comando pwdpwd es interno del shell,es interno del shell, /bin/pwd/bin/pwd es un programa aparte.es un programa aparte.

• • •

• cd ..cd .. •

• mv dir2 DIR2mv dir2 DIR2 •

•cambia el nombre del directorio real; cambia el nombre del directorio real; el enlace simbólico sigue apuntando ael enlace simbólico sigue apuntando a dir2dir2, por lo, por lo

que que

• cd dir2lscd dir2ls •

•da error, ya que no existe el objeto real.da error, ya que no existe el objeto real. •

• mv DIR2 dir2mv DIR2 dir2 •

•repone el nombre original al que apunta el enlace.repone el nombre original al que apunta el enlace. •

• rmdir dir2lsrmdir dir2ls •

•da error porque no es un directorio sino un enlace.da error porque no es un directorio sino un enlace. •

• rm dir2lsrm dir2ls •

•borra el enlace. Un borra el enlace. Un enlace simbólico se borra conenlace simbólico se borra con rmrm, y no con, y no con rmdirrmdir, puesto que el, puesto que el

enlace simbólico es un archivo y

enlace simbólico es un archivo y no un directorio, aún no un directorio, aún cuando sea un enlacecuando sea un enlace simbólico hacia un directorio.

simbólico hacia un directorio.

• ls dir2ls dir2 •

•cuando se borra un enlace simbólico, sólo se borra un archivo puntero, y no el objetocuando se borra un enlace simbólico, sólo se borra un archivo puntero, y no el objeto

real. real.

•Opciones del comando ls.Opciones del comando ls. •

• ls -1ls -1 •

•muestra un item por línea. muestra un item por línea. CuandoCuando lsls se usa en interconexiones, la salida dese usa en interconexiones, la salida de lsls presentapresenta

un item por línea por defecto. un item por línea por defecto.

• ls -Cls -C •

•fuerza el fuerza el despliegue encolumnado.despliegue encolumnado. •

• ls -als -a •

•muestra todos los archivos, incluyendo los que comienzan con punto, normalmente nomuestra todos los archivos, incluyendo los que comienzan con punto, normalmente no

mostrados. El directorio corriente

mostrados. El directorio corriente ..y el directorio padrey el directorio padre.... son entidades reales.son entidades reales.

• • • • ls -F /binls -F /bin • • ls -Fls -F •

•agrega sufijo que indica el tipo de archivo: / directorio, * agrega sufijo que indica el tipo de archivo: / directorio, * ejecutable, @ enlace simbólico.ejecutable, @ enlace simbólico. •

• •

• ls -Rls -R •

•muestra recursivamenmuestra recursivamente todos los archivos, subdirectorios y te todos los archivos, subdirectorios y archivos dentro dearchivos dentro de

subdirectorios. Para ver un listado más largo, subdirectorios. Para ver un listado más largo,

• ls -CR /etc | morels -CR /etc | more •

• •

• ln -s dir2 dir2lsln -s dir2 dir2ls •

• ls -lls -l •

•listado largo, muestra atributos de los archivos: tipo listado largo, muestra atributos de los archivos: tipo de archivo (primer caracter),de archivo (primer caracter),

permisos (9 caracteres), enlaces hard (en archivos), dueño, grupo, tamaño en bytes, permisos (9 caracteres), enlaces hard (en archivos), dueño, grupo, tamaño en bytes, fecha y hora, nombre.

fecha y hora, nombre.

•-rw-r--r-- 1 esteban other 138 Apr 5 19:34 LEAME-rw-r--r-- 1 esteban other 138 Apr 5 19:34 LEAME •

•drwxr-xr-x 2 esteban other 138 Apr 5 19:34 dir2drwxr-xr-x 2 esteban other 138 Apr 5 19:34 dir2 •

•lrw-r--r-- 1 esteban other 138 Apr 5 19:34 dir2ls ->./dir2lrw-r--r-- 1 esteban other 138 Apr 5 19:34 dir2ls ->./dir2 •

•-rw-rw-rw- 1 esteban other 138 Apr 5 19:34 nota-rw-rw-rw- 1 esteban other 138 Apr 5 19:34 nota •

•El símboloEl símbolo ->-> indica "apunta hacia" para indica "apunta hacia" para enlaces simbólicos.enlaces simbólicos. •

•Cambio de dueño y grupo.Cambio de dueño y grupo. •

• chown usuario1 notachown usuario1 nota •

•cambia el dueño del archivocambia el dueño del archivo notanota adjudicándosadjudicándoselo elo aa usuario1usuario1.. •

• chown usuario1 arch1 arch2chown usuario1 arch1 arch2 •

•cambia el dueño de la lista de archivos indicada. No puede revertirse, ya que el usuariocambia el dueño de la lista de archivos indicada. No puede revertirse, ya que el usuario

actual dejó de ser dueño de esos archivos. Si el archivo tiene permiso de lectura, es actual dejó de ser dueño de esos archivos. Si el archivo tiene permiso de lectura, es posible copiarlo para disponer de una copia

posible copiarlo para disponer de una copia propia. El cambio de dueño no propia. El cambio de dueño no estáestá permitido a usuarios comunes, sino reservado al supervisor para evitar que permitido a usuarios comunes, sino reservado al supervisor para evitar que a una un usuario se le adjudiquen archivos sin su

usuario se le adjudiquen archivos sin su consentimientoconsentimiento..

• • •

• chgrp tecnicos notachgrp tecnicos nota •

•cambia de grupo el archivo notas, adjudicándoselo al grupocambia de grupo el archivo notas, adjudicándoselo al grupo tecnicostecnicos. El dueño debe. El dueño debe

pertenecer al grupo

pertenecer al grupo tecnicostecnicos..

• chgrp tecnicos arch1 arch2chgrp tecnicos arch1 arch2 •

•cambia el grupo de la lista de archivos.cambia el grupo de la lista de archivos. •

•Modos de permisos.Modos de permisos. •

•Los permisos de archivos y directorios se Los permisos de archivos y directorios se cambian con el comandocambian con el comando chmodchmod. Pueden. Pueden

expresarse de dos maneras: simbólica y

expresarse de dos maneras: simbólica y absoluta.absoluta.

•En la forma simbólica, se usa En la forma simbólica, se usa la siguiente sintaxis:la siguiente sintaxis: • • • •[ugoa...][[+-=][rwxstugo...][ugoa...][[+-=][rwxstugo...] • • •

•+ + agrega agrega permiso permiso a a los los existentesexistentes •

•- - quita quita permiso permiso de de los los existentesexistentes •

•= = únicos únicos permisos permisos asignados asignados al al archivoarchivo •

•r lecturar lectura •

•w escrituraw escritura •

•x x ejecución, ejecución, o o acceso acceso si si es es directoriodirectorio •

•s s usa el usa el id del id del dueño o dueño o grupo del grupo del archivo archivo al ejecutal ejecutarar •

•t t fijar "fijar "sticky sticky bit" a bit" a un dirun directorio: ectorio: sólo dsólo dueños pueños puedenueden

borrar borrar

•u u usuario usuario (dueño)(dueño) •

•o otroso otros •

•a a todos todos (dueño, (dueño, grupo grupo y y otros)otros) •

• •

•Ejemplos de permisos en notación Ejemplos de permisos en notación simbólica:simbólica: •

• u+r u+r g+w-r g+w-r ug+r ug+r ugo+w-rx ugo+w-rx u+rwx,g+r-wxu+rwx,g+r-wx,o-rwx,o-rwx •

• •

• chmod u+rwx,g+rw-x,o+r-wx arch1chmod u+rwx,g+rw-x,o+r-wx arch1 •

• chmod u=rwx,g=rw,o=r arch1chmod u=rwx,g=rw,o=r arch1 •

•cambian los permisos de los cambian los permisos de los archivos indicados.archivos indicados. •

• •

•En modo absoluto se usa un código de En modo absoluto se usa un código de 4 dígitos octales 0..7, en 4 dígitos octales 0..7, en la forma Nnnn.la forma Nnnn. •

•NN, primer dígito:, primer dígito: •

• 4 fijar ID del dueño al 4 fijar ID del dueño al ejecutarejecutar

2 fijar ID del grupo

2 fijar ID del grupo al ejecutaral ejecutar

• 1 fijar "sticky bit" a un 1 fijar "sticky bit" a un directoriodirectorio •

•nnnnnn, 3 dígitos: permisos del usuario, grupo y otros, con el código, 3 dígitos: permisos del usuario, grupo y otros, con el código •

• 4 lectura4 lectura •

• 2 escritura2 escritura

1 ejecución, o acceso si es directorio 1 ejecución, o acceso si es directorio

• • •

•Ejemplos de permisos en notación Ejemplos de permisos en notación absoluta:absoluta: •

• 0777 0777 0755 0755 0764 0764 0640 0640 07100710 •

• •

• chmod 0764 arch1chmod 0764 arch1 •

•cambia los permisos como en el ejemplo anterior.cambia los permisos como en el ejemplo anterior. •

•Listado de permisos de los directorios.Listado de permisos de los directorios. •

• ls -lls -l •

•muestra los permisos y otros atributos.muestra los permisos y otros atributos. •

• •

•Para obtener información del directorioPara obtener información del directorio dir1dir1 ubicado en el directorio actual,ubicado en el directorio actual, •

• ls -lls -l •

•lista todos los archivos, entre lista todos los archivos, entre los que aparecelos que aparece dir1dir1;; •

• ls -l dir1ls -l dir1 •

•lista el contenido del directoriolista el contenido del directorio dir1dir1.. •

• ls -ld dir1ls -ld dir1 •

•trata la entradatrata la entrada dir1dir1 como archivo, sin listar su como archivo, sin listar su contenido, y dando sus atributos comocontenido, y dando sus atributos como

directorio. directorio.

• ls -ld .ls -ld . •

•muestra atributos del directorio actual.muestra atributos del directorio actual. •

•Cambio de permisos.Cambio de permisos. •

•quita permisos de escritura al dueño.quita permisos de escritura al dueño. •

• chmod u+w notachmod u+w nota •

•concede permisos de escritura al dueño.concede permisos de escritura al dueño. •

• chmod u-w+x notachmod u-w+x nota •

• chmod u-wx+r notachmod u-wx+r nota •

•cambian varios permisos del dueño al cambian varios permisos del dueño al mismo tiempo.mismo tiempo. •

• chmod u+w notachmod u+w nota •

• chmod g+w notachmod g+w nota •

• chmod o+w notachmod o+w nota •

•concede permiso de escritura solo al usuario, al grupo o a otros.concede permiso de escritura solo al usuario, al grupo o a otros. •

• chmod u+rw-x,g+r-wx,o+r-wx notachmod u+rw-x,g+r-wx,o+r-wx nota •

•fija todos los permisos en una fija todos los permisos en una sola operación. Los permisos que no se mencionen quedansola operación. Los permisos que no se mencionen quedan

como estén. como estén.

• chmod 0644 notachmod 0644 nota •

•realiza lo mismo en notación absoluta.realiza lo mismo en notación absoluta. •

• •

•El comandoEl comando chmodchmod admite las opcionesadmite las opciones •

• -v verboso, describe los permisos cambiados-v verboso, describe los permisos cambiados •

• -f no da error sobre permisos que no -f no da error sobre permisos que no pueden cambiarsepueden cambiarse •

• -R recursivo, cambia permisos de directorios y -R recursivo, cambia permisos de directorios y sussus

archivos archivos

• • •

• chmod -v chmod -v u+rwx,g+rw-xu+rwx,g+rw-x,o+r-wx arch1,o+r-wx arch1 •

• chmod -v 764 arch1chmod -v 764 arch1 •

• chmod -v 444 arch1chmod -v 444 arch1 •

• chmod u=rw,go=r arch1chmod u=rw,go=r arch1 •

•fija permisos en rw-r--r--.fija permisos en rw-r--r--. •

• chmod u=rwx,u+s arch1chmod u=rwx,u+s arch1 •

•ee jecutará arch1 con permiso del dueño de arch1. jecutará arch1 con permiso del dueño de arch1. •

• chmod -vR a+r dir1chmod -vR a+r dir1 •

•da permiso de lectura a da permiso de lectura a todos los directorios bajo dir1, todos los directorios bajo dir1, anunciando en forma verbosa loanunciando en forma verbosa lo

hecho. hecho.

• • •

• chmod ugo+rwx dirtodoschmod ugo+rwx dirtodos •

• chmod a+t dirtodoschmod a+t dirtodos •

•fija "sticky bit": a pesar de tfija "sticky bit": a pesar de tener el directorio permisos totales para todos, sólo puedenener el directorio permisos totales para todos, sólo pueden

In document Curso Basico de UNIX (página 48-58)