A blog about data, information and IT, by Mario Alberich

Jun 12
2013

Phing (V) - Operaciones con el sistema de archivos

Creación y acceso a directorios


Algunas de las operaciones que puedes realizar con el sistema de archivos son:

Operaciones con directorios


Para crear un directorio:



Lo anterior genera el archivo /tmp/sopadebits. Si se utiliza el segundo formato, se establecen los permisos de acceso (chmod) de ese directorio. El valor es octal y utiliza la misma estructura que el comando de consola chmod.

Para absolutizar un path relativo:


Nos devuelve la ruta completa hasta el archivo test.txt.

Si lo que queremos es cambiar los permisos o el propietario/grupo de un archivo o directorio, tenemos las tareas chmod y chown:


y:


Aunque pueda aparentar lo contrario, el atributo file permite tanto archivos como directorios.



En el primer caso establecemos los permisos de lectura y ejecución para todos los usuarios para el archivo test.txt, mientras que en el segundo lo hacemos sobre un directorio y solicitamos que la ejecución del comando muestre más detalles de la operación (verbose).

Manipulación de archivos


Para el caso, se puede resumir con los comandos Copy, Delete, Move, LoadFile, FileHash y Touch... Uno por uno funcionan de la siguiente manera:


Copia el archivo al directorio /tmp/sopadebits/, y lo sobreescribe si existe.



Lo primero borra el archivo que habíamos copiado con la tarea . Lo segundo borraría el directorio /tmp/sopadebits al completo.  Como en casos anteriores, hemos añadido la opción verbose para que nos facilite detalles de la operación.  Sin embargo, en este caso solicitamos que, en caso de error, la ejecución de la tarea finalice. Esto puede ser útil para evitar estropicios o tareas inútiles que requieran de este borrado.


En este caso Phing mueve el archivo test.txt al directorio temporal, sobreescribiendo la copia antigua si ésta existe.


Calcula el hash SHA1 de test.txt. Si no indicara hashtype, o indicara el valor 0, se calcularía el MD5. El valor de este hash se puede guardar en una variable, si se especifica el atributo propertyName:


En este caso, podré utilizar la varialbe ${myhash} para indicar el resultado de esta operación.  Pero lo cierto es que no es necesario indicar un nombre de variable. Por defecto, puedes utilizar la variable ${filehashvalue}, que es la variable donde se guarda este valor por defecto.

 

Y finalmente, operación touch, que permite modificar algunos atributos del archivo o directorio sin modificar le contenido:



Lo primero establece la fecha de modificación en base a los milisegundos transcurridos desde el Unix Epoch (1/1/1970 00:00:00). En el segundo caso establece la fecha de una forma más amigable.

Filesize:


Mide el tamaño de un archivo. Podemos indicar una variable que guarde ese dato indicando el atributo propertyname, pero por defecto se guarda en la variable ${filesize}.

Y hasta aquí las operaciones más habituales con ficheros que puedes hacer utilizando Phing. No son todas, ni mucho menos. Puedes continuar la lectura en la página de documentación de Phing.

 

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.