Índice

Soluciones del capítulo Mecanismos esenciales del shell

1. Funcionalidades varias

a. Ejercicio 1: comandos internos y externos

¿Son los comandos umask y chmod comandos internos?

$ type umask 
umask is a shell builtin 
$ type chmod 
chmod is a tracked alias for /usr/bin/chmod

umask es un comando interno. chmod es un comando externo. El comando interno type permite saber si un comando se encuentra implementado de manera interna.

b. Ejercicio 2: generación de nombres de archivo

Sea la siguiente lista de archivos:

$ ls  
bd.class.php    header.inc.php  install.txt     readme.txt 
prueba           index.php       mail.class.php

1.

Muestre los nombres de archivo que terminan en .php.

$ ls *.php 
bd.class.php    header.inc.php  index.php       mail.class.php

2.

Muestre los nombres de archivo que tengan la letra e en segunda posición.

$ ls ?e* 
header.inc.php  readme.txt

3.

Muestre los nombres de archivo cuya primera letra esté comprendida entre a y e.

$ ls [a-e]* 
bd.class.php  prueba

4.

Muestre los nombres de archivo que no comienzan por una vocal.

$ ls [!aeiouy]* 
bd.class.php    header.inc.php  mail.class.php  readme.txt

Expresiones complejas (ksh, bash)

En bash, debemos activar el reconocimiento de expresiones complejas:

$ shopt -s extglob

5.

Muestre los nombres de archivo que no terminan en .php.

$ ls !(*.php)  
prueba        install.txt  readme.txt ...