Comandos de UNIX — Trabajar con archivos

 

Crear archivos

Para crear un nuevo archivo, puedes guardarlo desde un editor de texto (u otro programa), o puedes usar el comando touch:

[server]$ touch filename

Esto crea un archivo vacío llamado filename en el directorio de trabajo actual.

Mover archivos

Para mover un archivo a otro lugar:

[server]$ mv /old/location/filename /new/location/filename

Ten en cuenta que también puedes usar rutas relativas:

[server]$ mv filename ../directory/filename

Copiar documentos

Para copiar un archivo a otro lugar:

[server]$ cp /existing/location/filename /new/location/filename

Renombrar archivos

mv también se usa para cambiar el nombre de un archivo a otra cosa:

[server]$ mv oldfilename newfilename

mv también se puede usar para mover un archivo a un nuevo directorio al cambiarle el nombre:

[server]$ mv oldfilename ../directory/newfilename 

También puedes cambiar el nombre de un archivo mientras usa el comando cp:

[server]$ cp /existing/location/filename /new/location/newfilename 

Eliminar archivos

Para eliminar un archivo:

[server]$ rm filename 

Puedes usar comodines para eliminar varios archivos con nombres similares. Para eliminar todos los archivos que comienzan con "pic" (eg, pic01.jpg, pic02.jpg, etc):

[server]$ rm pic*

El wildcard puede aparecer en cualquier parte de la cadena. Para eliminar todos los archivos .jpg:

[server]$ rm *.jpg

Ten cuidado al usar comodines, ya que puedes eliminar archivos inadvertidamente de esta manera. Como medida de seguridad, puedes usar la bandera -i; Luego se te pedirá que confirmes todas las eliminaciones. Escribe y o n cuando se te solicite para confirmar si deseas o no eliminar cada archivo:

[server]$ rm -i *.jpg
rm: remove 'example1.jpg'? y
rm: remove 'example2.jpg'? y

Para eliminar permanentemente un directorio y todo su contenido, usa los indicadores -rf:

[server]$ rm -rf directoryname

El comando rm -rf elimina por completo todo en esa carpeta y no habrá forma de recuperar los datos. Ten cuidado al usar este comando.

Ubicar archivos

Para ubicar todos los archivos en un árbol de directorios que contienen algún patrón en su nombre:

[server]$ find directory -name <regexp> -print
list
of
results

Ten en cuenta que este comando usa una expresión regular (<regexp>) para describir el nombre del archivo. También puedes escribir el nombre de archivo exacto.

Por ejemplo, para buscar todos los archivos que terminan con htm en el directorio actual y cualquier subdirectorio:

[server]$ find . -name *.htm -print

Ten en cuenta que las búsquedas que contienen comodines ("*", ".", "?") Deben estar delimitadas por comillas para que el shell no intente interpretarlas como expresiones regulares:

[server]$ find . -name "*.htm" -print

Además, -print es el valor predeterminado en la mayoría de los sistemas Unix / Linux, por lo que puede omitirse en la mayoría de los casos:

[server]$ find . -name "*.htm"

El comando de búsqueda es extremadamente poderoso. Otro uso útil es eliminar todas las subcarpetas vacías en un árbol en particular. Por ejemplo:

[server]$ find . -depth -type d -empty -exec rmdir {} ';'

Solo asegúrate de incluir el indicador -empty dentro del comando anterior.

Este comando busca en el directorio actual y en todos los subdirectorios. Todos los archivos que contienen la cadena tendrán su ruta impresa en la salida estándar:

[server]$ find . -exec grep "some_string" '{}' \; -print

Para buscar todos los archivos que se han modificado en los últimos 7 días y enviarlos a un archivo:

[server]$ find . -mtime -7 > mod.txt

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?