3_3_La gestión de los archivos(1)

download 3_3_La gestión de los archivos(1)

of 13

description

3_3_La gestión de los archivos(1)

Transcript of 3_3_La gestión de los archivos(1)

  • Unsistemadearchivos,llamadocomnmenteFileSystemoFS,determinalaorganizacindelosdatosenunsoportedealmacenamiento,yportanto,cmogestionayorganizaelsistemaoperativolosarchivos.

    Linux es, como todoUnix, un sistemaoperativo completamente orientado a archivos. Se representa todo (o casitodo)conunarchivo,tantolosdatos(archivosdedatosdecualquiertipo,comounaimagenounprograma)comolosperifricos(terminales,ratones,teclado,tarjetasonido,etc.)oinclusolosmedios decomunicacin(sockets,tuberasnombradas,etc.).SepuededecirqueelsistemadearchivoseselcorazndecualquiersistemaUnix.

    EjemploderboldedirectorioLinux

    El sistema de archivos de Linux es jerrquico. Describe un rbol de directorios y subdirectorios, a partir de unelementobsicollamadorazorootdirectory.

    Distinguimostrestiposdearchivos:ordinarios,catlogo,especiales.

    Losarchivosordinariossellamantambinarchivosregulares,ordinaryfilesoregularfiles.Sonarchivostotalmenteclsicosquecontienendatos.Pordatossedebeentendercualquiercontenido:

    Lagestindelosarchivos

    1.Elsistemadearchivos

    2.Losdiferentestiposdearchivos

    a.Losarchivosordinariosoregulares

    l texto

    l imagen

    - 1 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Por defecto, nada permite diferenciar unos de otros, salvo la utilizacin de algunas opciones de determinadoscomandos(lsFporejemplo)oelcomandofile.

    ComoLinuxnogestionalasextensiones,elnombredeunprogramanoterminacasinuncaporun".exe"habrqueencontrarotromtodoparadistinguirlo.

    Losarchivoscatlogosonlosdirectoriosocarpetas.Losdirectoriospermitenorganizareldiscodurocreandounajerarqua. Un directorio puede contener archivos normales, archivos especiales y otros directorios de manerarecursiva.

    Undirectorionoesmsqueunarchivoparticularquecontienelalistadelospropiosarchivospresentesenestedirectorio.Estanocinresultarmuytilcuandosetrateeltemadelospermisos.

    Eltercertipodearchivoseselespecial.Existenvariostiposdearchivosespeciales.Porejemplo,losdriversdelosperifricosestnrepresentadosporarchivosespecialesdelacarpeta/dev.

    Sonprincipalmentearchivosquesirvendeinterfazparalosdiversosperifricos.Sepuedenutilizar,segn elcaso,como archivos normales. Cuando se accede enmodo lectura o escritura a estos archivos se redirigen hacia elperifrico(pasandoporeldriverasociadosiexiste).Porejemplo,sidirigeunarchivodeondasonora(wave)haciaelarchivoquerepresentalasalidadelatarjetadesonido,haymuchas probabilidadesqueestesonidoseaaudibleporsusaltavoces.

    Nosepuededarcualquiernombreaunarchivohayqueseguirunassimplesreglas,vlidasparatodoslostiposdearchivos.

    l audio

    l programabinariocompilado

    l script

    l basededatos

    l libreradeprogramacin

    l etc.

    $ file nom_arch nom arch: 32 Bits ELF Executable Binary (stripped)

    Linux desconoce la nocin de extensin de archivo como componente interno de la estructura del sistema dearchivos.Dichodeotromodo,unaextensinnoes relevantedentrodeunsistemadearchivosyse laconsidera

    simplementecomopartedelnombre.Slosirveparadistinguirvisualyrpidamenteelposiblecontenidodeunarchivoencomparacinconotro.Nodebemoshablardeextensin, sinodesufijo.Sinembargo,elprimertrminoformapartedellenguajecomn,ysepuedeseguirutilizando:todoelmundocomprenderloquequieredecir.

    b.Loscatlogos

    c.Losarchivosespeciales

    3.Nomenclaturadelosarchivos

    - 2 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • EnlosantiguossistemasUnix,unnombredearchivonopodasuperarlos14caracteres.Enlossistemasactuales,Linuxincluido,sepuedellegarhasta255caracteres.Laposibleextensinestincluidaenlalongituddelnombredelarchivo.

    Unpuntoextremamenteimportante:Linuxrespetaladistincinentre losnombresdearchivosenminsculasyenmaysculas.Pepito,PEPITO,PePitoypepitosonnombresdearchivosdiferentes,conuncontenidodiferente.Estadistincin es intrnseca al tipo de sistema de archivos. En otros sistemas de tipo Unix (como Mac OS X) estecomportamientopuedeseropcional.

    Se acepta lamayora de los caracteres (las cifras, las letras, lasmaysculas, lasminsculas, ciertos signos, loscaracteres acentuados), incluido el espacio. Sin embargo, se deben evitar algunos caracteres, ya que tienen unsignificadoparticulardentrodelshell:&()~\/|`?(alprincipiodelnombre).

    Losnombressiguientessonvlidos:

    Losnombressiguientes,aunquevlidos,puedencrearproblemas:

    Las rutas permiten definir una ubicacin en el sistema de archivos. Es la lista de los directorios ysubdirectorios utilizadosparaaccederaunsitiodeterminadodelaestructurahastalaposicindeseada(directorio,archivo).Sesuelecompletarunnombredearchivoconsurutadeacceso.Poresoelarchivopepitodeldirectoriodir1esdiferentedelarchivopepitodeldirectoriodir2.Alserjerrquico,elsistemadearchivosdeUnixtieneformadeestructuraenrbol.

    El esquema presentado en la seccin La gestin de los archivos El sistema de archivos de este captulorepresentaunaestructuraenrboldeunsistemadearchivosLinux.La/situadaarribadeltodosellamarazoroot directory (no confundir con el directorio del administrador root). El nombre de la ruta o path name de unarchivoes la concatenacin,desde la raz,de todos losdirectoriosque sedebencruzar paraaccederal, queestnseparadoscadaunoporelcarcter/.Esunarutaabsoluta,comolasiguiente:

    l Archivo1

    l Paga.txt

    l 123tratamiento.sh

    l Paga_junio_2002.xls

    l 8

    l Archivo*

    l Pago(diciembre)

    l Ben&Nuts

    l Pagajunio2002.xls

    l f

    4.Lasrutas

    a.Estructuraynombrederuta

    /home/pepito/Docs/Backup/fic.bak

    - 3 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Unarutaabsolutaocompleta:

    Alcrearunnuevousuario,eladministradorleasignaundirectoriopersonalllamadohomedirectory.Cuandoiniciasesin,elusuarioesdirigidodirectamenteaesedirectorio,queesel suyopersonal,enelquepodrcrearsuspropiosarchivosysubdirectorios.

    Unnombrederutatambinpuedeserrelativoasuposicineneldirectorioactual.Elsistema(oelshell)recuerdalaposicinactualdeunusuarioenelsistemadearchivos,eldirectorioactivo.Puedeaccederaotrodirectoriodelaestructuradesdesuubicacinactualsinteclearlarutacompleta,consloprecisarlarutamscortaenrelacinconsuposicinactualdentrodelaestructura.

    Paraello,amenudohacefaltautilizardosentradasparticularesdedirectorios:

    Unarutarelativa:

    Lastresafirmacionesanterioresnosonobligatorias:

    l empiezadesdelaraz.Porlotanto,comienzaconuna/,

    l describetodoslosdirectoriosquehayquecruzarparaaccederalsitiodeseado,

    l nocontieneni.ni...

    b.Directoriopersonal

    Login: seb Password: xxxxxxxxxx $ pwd /home/seb

    c.Rutarelativa

    l Elpunto.representaeldirectoriocorriente,activo.Sueleestarimplcito.

    l Losdospuntos..representaneldirectoriodenivelsuperior.

    l describe una ruta relativa a una posicin determinada en la estructura, en general (pero no siempre) desde laposicinactual

    l describeenprincipiolarutamscortaparairdeunpuntoaotro

    l puedecontenerpuntosodospuntos.

    l /usr/local/binesunarutacompletaoabsoluta

    l Documents/Photos es una ruta relativa: se considera que existe el directorio Documents en eldirectorio corriente

    l ./Documents/Photosesunarutarelativaperfectamenteidnticaalaanterior,conlasalvedaddequeelpuntoindica el directorio activo (corriente) de manera explcita. "./Documents" indica de manera explcita el directorioDocumentseneldirectorioactivo

    l /usr/local/../binesunarutarelativa: los..sonrelativosa/usr/localysubenunnivelhacia/usr.Larutafinales,porlotanto/usr/bin.

    - 4 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Elbashinterpretaelcarctervirgulilla~comounaliasdeldirectoriopersonal.Lasrutaspuedenserrelativasalavirgulilla,perostanodebeirprecedidaporcarcteralguno.Paradesplazarseeneldirectorio tmpdesucarpetapersonalestdondeest:

    $ cd ~/tmp

    Siintroduceesto,obtendrunerror:

    $ cd /~

    Para desplazarse por los directorios, utilice el comando cd (change directory). El comando pwd (print workingdirectory),queyahemoscomentado,muestralarutacompletadeldirectorioactual.

    Si introducecd .,nosemueve.Elpuntosermuytilcuandotengaqueespecificarrutasexplcitasacomandosubicadoseneldirectoriodondeestubicado.

    Cd..subeunnivel.Siseencontrabaen/home/seb,ahoraestarenhome.

    Elcomandocdsinargumentopermitevolverdirectamenteasudirectoriodeusuario.

    A continuacin, presentamos un ejemplo. El usuario seb se encuentra en su directorio personal. Se muevemediante una ruta relativa hacia /home/public. Con .. sube hacia /home, por lo tanto con ../public se muevea/home/public.Deah,vaunarutacompleta,sedirigehacia/urs/local/bon,yluegodecide,conlaayudadeunaruta relativa, ir a /usr/lib: el primer .. baja hacia usr/local, el segundo hacia /usr, y luego vuelve hacia /usr/lib.Finalmente,sebvuelveasudirectoriopersonalconcdsinargumento.Aqusedalalneacompletaparaunamejorcomprensin.

    El comando ls permite listar el contenido de un directorio (catlogo) en lneas o columnas. Soporta variosparmetros,deloscualeslosmsimportantesson:

    d.Lavirgulilla

    e.cd

    seb@slyserver:~> pwd /home/seb seb@slyserver:~> cd ../public seb@slyserver:/home/public> cd /usr/local/bin seb@slyserver:/usr/local/bin> cd ../../lib seb@slyserver:/usr/lib> cd seb@slyserver:~>

    5.Loscomandosbsicos

    a.Listarlosarchivosylosdirectorios

    Parmetro Significado

    - 5 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Elparmetroquelefacilitamsinformacines-l:proporcionaciertosdetallesrelativosalosarchivos.

    Lalneadesalidaindicaeltamaototalenbloquesde1024bytes(o512bytessisedefineunavariablellamadaPOSIXLY_CORRECT)delcontenidodeldirectorio.Estetamaorepresentaelconjuntodelosarchivosordinariosdeldirectorioynotieneencuentalosposiblessubdirectoriosysucontenido(paraello,habrqueutilizarelcomandodu).

    Luegovienelalistadetalladadetodoelcontenido.

    -l Paracadaarchivoocarpeta,facilitainformacindetallada.

    -a Sevisualizanlosarchivosescondidos(empiezanporunpunto).

    -d Enundirectorio,precisaelpropiodirectorio,ynosucontenido.

    -F Aadeuncarcteralfinaldelnombreparaespecificareltipo:/paraundirectorio,*paraunejecutable,@paraunvnculosimblico,etc.

    -R Sielcomandodetectasubdirectorios,entraenellosdemanerarecursiva.

    -t Se filtra la salida por fecha demodificacin delms reciente alms antiguo. Se visualizaestafecha.

    -c Muestra/ordena(cont)porfechadecambiodeestadodelarchivo.

    -u Muestra/ordena(cont)porfechadeaccesodelarchivo.

    -r Seinvierteelordendesalida.

    -i Muestraelinododelarchivo.

    -C Lavisualizacinsehaceenvariascolumnas(pordefecto).

    -1 Lavisualizacinsehaceenunasolacolumna.

    $ ls -l total 4568 -rw-r--r-- 1 seb users 69120 sep 3 2006 3i_recuperacin_2006.doc -rw-r--r-- 1 seb users 9632 sep 3 2006 3i_recuperacin_2006.odt -rw-r--r-- 1 seb users 6849 nov 17 2003 control_1I2_mrtes.sxw ...

    rwrr 1 seb users 69120 sep32006 3i_recuperacin_2006.doc

    1 2 3 4 5 6 7

    l 1:Elprimersmbolorepresentael tipodearchivo(:ordinario,d:directorio, l:vnculosimblico...) losotros,porbloques de tres, los permisos para el usuario (rw), el grupo (r) y todos (r). Se explican los permisos en elcaptuloLosdiscosyelsistemadearchivos.

    l 2:Uncontadordevnculos(captuloLosdiscosyelsistemadearchivos).

    l 3:Elpropietariodelarchivo,quesuelesersucreador.

    l 4:Elgrupoalcualperteneceelarchivo.

    l 5:Eltamaodelarchivoenbytes.

    l 6:Lafechadelaltimamodificacin(avecesconlahora),siguiendoelparmetro(t,c,u).

    l 7:Elnombredelarchivo.

    - 6 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Puederesultarmuytil laposibilidaddelistarsusarchivosdetalmaneraquesevisualicenalfinaldelalistalosmodificados recientemente.As,encasodehaberungrannmerodearchivos, tendrdelanteestosltimos.Elordenporfechademodificacinsehacecon-t,yenelordencontrario,con-r.Adalelosdetallescon-l.

    Unrecursomnemotcnicopararecordarestasecuenciadeargumentosesutilizarlabajolaforma-rtl(elordendelosargumentosnotieneimportanciaaqu)ypensarenlafamosaradioeuropeaRTL.

    Quizsnecesitecreararchivosvacosparahacerpruebas.Uncomandoprcticoparaelloestouch.Utilizadoconelnombredeunarchivocomoargumentonicamente,creaunarchivoconuntamaocero.

    Lacreacindearchivosvacosnoeselprincipalusodetouch.Sivuelveaejecutarelmismocomandoenelarchivo,observar que la fecha de modificacin ha cambiado. El manual de touch le informar de que as es posiblemodificarcompletamentelafechaylahoradeunarchivo.Estopuedesertilparaforzarlascopiasdeseguridadincrementalesdearchivos.

    Elcomandomkdir(makedirectory)permitecrearunoovariosdirectorios,ounaestructuracompleta.Pordefecto,elcomando no crea una estructura. Si pasa como argumentos dir1/dir2 y dir1 no existe, el comando devuelve unerror.Enestecaso,utiliceelparmetro-p.

    mkdir [-p] dir1 [dir2] ... [dirn]

    Los permisos van a veces seguidos de un punto "." o de un signoms "+". El primero significa que el archivodisponedeuncontextodeseguridadselinux,elsegundoqueelarchivodisponedepermisosextendidosACL.Estos

    conceptosnosonabordadosenestelibroynotienenningnimpactoenlasoperacionespropuestasenellibro.

    $ ls -lrt -rw-r--r-- 1 seb users 66107 ene 9 17:24 Parcial_1_1I_2008.pdf -rw-r--r-- 1 seb users 13777 ene 10 17:58 parcial_3I_ppa_2007.odt -rw-r--r-- 1 seb users 64095 ene 10 17:58 parcial_3I_ppa_2007.pdf -rw-r--r-- 1 seb users 100092 feb 22 22:21 curso_shell_unix.odt

    ls -l -r -t es estrictamente idntico als -lrt, como ya se ha indicado en la sintaxis general de loscomandos.

    b.Gestionarlosarchivosylosdirectorios

    Creararchivosvacos

    $ touch fictest $ ls -l fictest -rw-r--r-- 1 seb users 0 feb 29 15:13 fictest

    Creardirectorios

    $ mkdir Documentos $ mkdir Documentos/Fotos

    - 7 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • El comando rmdir (remove directory) suprime uno o varios directorios. No puede suprimir una estructura. Si eldirectorio que pretende eliminar contiene archivos o directorios, el comando devuelve un error. Por lo tanto, eldirectorionodebecontenerniarchivosnidirectorios,yelloaunquelospropiossubdirectoriosestnvacos.

    Elcomandocp(copy)copiaunoovariosarchivosenotroarchivooenundirectorio.

    En el primer caso, se vuelve a copiar fic1 en Destino. Si Destino existe, se sobreescribe sin aviso segn elparmetropasadoysegnlospermisos.Enelsegundocaso,secopiandenuevofic1,fic2yassucesivamenteenel directorioDestino. Las rutas pueden ser absolutas o relativas. El comando admite, entre otras, las opcionessiguientes:

    $ mkdir -p Archivos/antiguallas $ ls -R .:

    Archivos Documentos fictest

    ./Archivos: antiguallas

    ./Archivos/antiguallas:

    ./Documentos: Fotos

    Suprimirdirectorios

    rmdir dir1 [dir2] ... [dirn]

    Nohayparmetro-r (recursividad) para el comando rmdir. Para suprimir una estructura tendrqueutilizar elcomandorm.

    $ rmdir Documentos/ rmdir: Documentos/: El directorio no est vaco. $ rmdir Documentos/Fotos $

    Copiararchivos

    cp fic1 [fic2 ... ficn] Destino

    Parmetro Significado

    -i Pideconfirmacindecopiaparacadaarchivo.

    -r Recursivo:copiaundirectorioytodosucontenido.

    - 8 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Presteatencinalfuncionamientodecpconlascopiasdedirectorios.Elfuncionamientoesdiferentesegnexistaonoeldirectoriodedestino.Enelprimercaso,dir2noexiste.Secopiaeldirectoriodir1endir2.Alfinaldir2esunacopiaexactadedir1.

    Ahoraquedir2existe,ejecutedenuevoel comandocp.Estavez,comodir2existe,nosersobreescrito,comocabaesperar.Elcomandodeterminaque,alserdir2eldestino,sedebecopiardir1eneldestino:secopiadir1endir2.

    El comandomv (move) permitemover, volver anombrarunarchivoo lasdos cosasa la vez. Funciona comoelcomandocp.Losparmetros-fe-itienenelmismoefecto.Conlostrescomandosmvsucesivossiguientes:

    Observelaexistenciadelparmetro-u:sielarchivodedestinoesmsreciente,impidequesesobreescriba.

    El comando rm (remove) suprime uno o varios archivos y, si es preciso, una estructura completa, segn lasopciones.Lasupresinesdefinitiva.

    -p Sepreservanlospermisosyfechas.

    -f Forzarlacopia.

    -a Copia de archivo: el destino es en lamedida de lo posible idntico al origen. La copia esrecursiva.

    $ ls -d dir2 ls: no puede acceder a dir2: No existe el archivo o directorio $ cp -r dir1 dir2 $ ls dir1 dir2

    $ cp -r dir1 dir2 $ ls dir2 dir1

    Moveryvolveranombrarunarchivo

    l sevuelveanombrartxt1comotxt1.old

    l semuevetxt2adir1

    l semuevetxt3adir1ysevuelveanombrarcomotxt3.old.

    $ touch txt1 txt2 txt3 $ mv txt1 txt1.old $ mv txt2 dir1/txt2 $ mv txt3 dir1/txt3.old

    Suprimirunarchivoounaestructura

    - 9 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Las opciones son las habituales, pero dada la particularidad y la peligrosidad del comando, parece necesariorepasarlas.

    Pororden,loscomandossiguientessuprimenunsimplearchivo,undirectorioyunaestructurademanera forzada:

    Veamos un truquito. Suponga que dispone de un archivo cuyo nombre comienza con un guin. Es posiblesuprimirloconrm?

    Es imposiblesuprimirelarchivo"i"deestamanera,yaquerm lo interpretacomounparmetro,ynocomounargumento.Porlotantohayqueactuarconastucia.Existendossoluciones:

    Estaltimasolucintienelaventajadeserunestndar.Lasdoslneassonequivalentes:

    rm [Opciones] fic1 [fic2...]

    Parmetro Significado

    -i El comando requerir una confirmacin para cada uno de los archivos que desea suprimir.Segn la versin de Unix, elmensaje cambia y la respuesta tambin: y, Y, O, o, N, n, avecestodas.

    -r El parmetro siguiente que se espera es un directorio. En este caso, la supresin esrecursiva:sesuprimentodoslosnivelesinferiores,tantolosdirectorioscomolosarchivos.

    -f Fuerzalasupresin.

    $ rm fic1 $ rm -r dir1 $ rm -rf /home/public/depots

    El uso combinadode los parmetros-r y-f, aunquemuytil yprctico, esmuypeligroso,enparticular comoroot. No se le pide ninguna confirmacin. Al menos que se utilicen herramientas de recuperacin de datos

    especficos, carasypocoeficaces, seperdernsusdatosdemanera irremediable.Existeun riesgoadicional: si creequerm -rf / no tocar sus archivos con el pretexto de no contar con permisos en la raz, comete un error! Elcomandoesrecursivo,terminarllegandoasudirectoriopersonal

    $ >-i # ver las redirecciones $ rm -i rm: missing operand Pruebe: `rm --help para ms informacin.

    l UtilizarlaopcinGNU --quesignificaelfinaldelosparmetrosyelprincipiodelosargumentos.

    l Aadirunaruta,relativaocompleta,antesdelguin.

    $ rm -- -i $ rm ./-i

    - 10 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Puedecrearvnculossimblicos,quesonunpococomoatajosaunarchivo.Unvnculoesunarchivoespecialquecontienecomoinformacinlarutahaciaotroarchivo.Esuntipodealias.Existendostiposdevnculos:elvnculoduro(hardlink),queveremosmsadelante,duranteelestudiodelossistemasdearchivos,yelvnculosimblico(softlink),quecorrespondealadefinicindada.

    Esposiblecrearvnculossimblicoshaciacualquiertipodearchivo,seacualseayestdondeest.Elcomandodecreacindevnculossimblicosnocompruebalaexistenciadelarchivoalqueseapunta.Esposiblecrearvnculosaarchivosquenoexistenconelparmetro-f.

    Si fuera necesario, el vnculo se comportar como el archivo al que se apunta, con losmismos permisos y lasmismaspropiedades:

    Sloencasodequeseelimine,el vnculo simblico se "separa"delarchivoalqueapunta. La supresindeunvnculosimblicoimplicalasupresindeestevnculonicamente,ynodelarchivoalqueapunta.Lasupresindelarchivo al que se apunta no implica la supresin de los vnculos simblicos asociados. En este caso, el vnculoapuntaalvaco.

    Esteejemplomuestraqueunvnculosimblicoesenrealidadunarchivoespecialdetipo"l"queapuntahaciaotroarchivo.Observeenlalistadetalladalapresenciadeunaflechaqueindicasobrequarchivo apuntaelvnculo.Sedistingueelcarcter@al indicarquesetratadeunvnculosimblicodurante lautilizacindelparmetro-F. Sidispone de un terminal de color, es posible que el vnculo simblico aparezca en azul claro (por convencin enLinux).Siapareceenrojo,esqueapuntaalvaco.

    Losvnculossimblicos

    ln -s archivo vnculo

    l sielarchivoalqueseapuntaesunprograma,ejecutarelvnculollevaaejecutarelprograma

    l sielarchivoalqueseapuntaesundirectorio,uncdsobreelvnculoentraenestedirectorio

    l sielarchivoalqueseapuntaesunarchivoespecial(perifrico),seveelvnculocomoperifrico

    l etc.

    $ touch fic1 $ ln -s fic1 vnculofic1 $ ls -l -rw-r--r-- 1 seb users 0 mar 4 19:16 fic1 lrwxrwxrwx 1 seb users 4 mar 4 19:17 vnculofic1 -> fic1 $ ls -F fic1 vnculofic1@ $ echo titi>fic1 $ cat vnculofic1 titi

    Queunvnculoapuntealvaconosignificaquenoapunteanada.Quizesthechoapropsito:esposiblecrear

    - 11 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • Seexplicarmsadelanteelcomandoechoyelsigno>.Elefectoaqueslaescrituraenelarchivofic1de"titi".Elcomandocatvisualizaelcontenidodeunarchivo.Alrepresentarelvnculofic1,lasalidaeslaesperada.

    Al utilizar los comandos con el sistema de archivos, puede resultar interesante filtrar la salida de nombres dearchivosconayudadedeterminadoscriterios,porejemploconelcomandols.Envezdevisualizartodalalistadearchivos,sepuedefiltrarlavisualizacindevarioscriteriosycaracteresespeciales.

    vnculoshaciapuertosUSB,oCDROM,entreotros,detrsdeloscualeshaysistemasdearchivosremovibles.Enestecaso,elvnculosevuelveactivocuandoseinsertaelsoporteosemontaelsistemadearchivosremovido.

    Cuidado, lospermisos indicadosson losdelarchivoespecialyno tienenotro significado:nosignificaque todoelmundotienepermisosenelarchivoalqueseapunta.Durantesuutilizacin,son lospermisos delarchivoode la

    carpetaalosqueseapuntanlosqueprevalecen.

    c.Comodines:carcterdesustitucin

    Caracteres(s) Funcin

    * Sustituyeunacadenadelongitudvariable,inclusovaca.

    ? Sustituyecualquiercarcternico.

    [...] Unaserieounrangodecaracteres.[a-b] Uncarcterentreelrangoindicado(deaabincluida).[!...] Inversindelabsqueda.[...] dem.

    l Supongamoselcontenidosiguiente:

    $ ls afic afic2 bfic bfic2 cfic cfic2 dfic dfic2 afic1 afic3 bfic1 bfic3 cfic1 cfic3 dfic1 dfic3

    l Obtienetodoslosarchivosqueempiezancona:

    $ ls a* afic1 afic2 afic3

    l Todoslosarchivosdecuatrocaracteresqueempiezancona:

    $ ls a??? afic

    l Todoslosarchivosdealmenostrescaracteresyqueempiezanconb:

    $ ls b??* bfic bfic1 bfic2 bfic3

    - 12 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber

  • El shell es el encargado de sustituir estos caracteres antes de pasar los parmetros a un comando. As, en elmomentodeun$ cp * Documents,cpnorecibeelcarcter*,sinolalistadetodoslosarchivosydirectoriosdeldirectorioactivo.

    Los comodines pueden utilizarse dentro de todos los argumentos que representan archivos o rutas. As, elcomandosiguientevaavolveracopiartodoslosarchivosREADMEdetodoslossubdirectoriosdeDocumentsenlaposicinactual:

    $ cp Documents/*/README

    Sedebencerraralgunoscaracteresespecialesporejemplo,encasodecaracterespococorrientesenunnombredearchivo.

    l Todoslosarchivosqueterminancon1o2:

    $ ls *[12] afic1 afic2 bfic1 bfic2 cfic1 cfic2 dfic1 dfic2

    l Todos los archivos que empiezan con las letras de a a c, que tienen al menos un segundo carcter antes de laterminacin1o2:

    $ ls [a-c]?*[12] afic1 afic2 bfic1 bfic2 cfic1 cfic2

    l Todoslosarchivosquenoterminanpor3:

    $ ls *[!3] afic afic1 afic2 bfic bfic1 bfic2 cfic cfic1 cfic2 dfic dfic1 dfic2

    Interpretacinporelshell

    d.Cierredecaracteres

    l La contrabarra \ permite cerrar un carcter nico. ls paga\ *.xls va a listar todos los archivos quecontienenunespaciodespusdepaga.

    l Lascomillas"..."permitenlainterpretacindeloscaracteresespeciales,delasvariables,dentrodeunacadena.

    l Losapstrofes...cierrantodosloscaracteresespecialesenunacadenaounarchivo.

    - 13 - Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May

    enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA9U29saXMgTWF5IE5vZSBGZXJuYW5kbyAtIDFhN2JiZDAyLTc4YTgtNDMyZS1iZDgyLTQ5ODUzNjI2ZmE5NhVp7eq3utKICwA=-enidentnumber