Ficheros en linux
Visualizando ficheros y directorios
Para ver el contenido de un fichero podemos hacerlo con
cat
pero este nos mostratar todo el archivo de una vez
si queremos ir viendolo por partes podemos hacerlo con
more
y con la tecla enter vamos bajando.
La evoucion del comando es less
llamado asi por less is more
esta nos ofrece comandos adicionales para movernos por el fichero,
podemos ver los comandos pulsando h
. Por ejemplo pasamos a la pagina
siguiente con la barra espiadora y con la b a la pagina anterior.
Otra utiliza es usando / para buscar una palabra en la pagina actual con
la letra n va buscando la mismas coincidencias en las siguientes paginas.
Copiando ficheros y directorios
Copiando ficheros
Usamos cp
: cp ficheroOriginal ficheroCopia
Si el segundo argumento tiene un nombre de archivo que ya exita, este sera sobre escrito por el original.
cp no nos preguntar por defaut si queremos sobrescribir.
Para que nos pregunte tenemos que hacer cp -i
(-i es de -interactive)
de esta manera antes de sobrescribir nos preguntara.
Tambien podemos copiar hacia otras rutas cp fichero1.txt /Documents/ficheros/
Copiando directorios
Tenemos que usar el flag -r
de recursivo. Entonces hariamos cp -r Carpeta1 Carpeta2
de esta manera
dentro de Carpeta2 estaria ahora Carpeta1.
Moviendo ficheros y directorios
Hacemos mv fichero directorio
por ejemplo mv mi-fichero.txt /Documents/
Tambien podemos mover un directorio entero.
En este caso a diferencia de
cp
no hace falta ponerle -r si el directorio contiene muchas anidaciones.
Cambiando el nombre del fichero o directorio con mv
Hacemos mv fichero1.txt fichero2.txt
y si vemos con ls
fichero1.txt ya no esta y
el contenido lo tienen ahora fichero2.txt
Validando mv con -u
El flag -u
hara que si al momento de mover un fichero o directorio
ya existe en el lugar de destino un archivo o directorio con el mismo
nombre, este revisara su fecha de modificacion, si el archivo que queremos
mover es mas viejo , sera omitido.De esta manera nos aseguramos de no pisar
registros mas nuevos con otros mas antiguos. mv -u fichero1.txt /Documentos
Eliminando archivos y directorios
Eliminando archivos
Para hacerlo tenemos que usar rm
: rm fichero1.txt
Tene en cuenta que no nos pregutara si estamso seguros, lo eliminara inmediatamente.
Podemos elimiar varios archivos a la vez asi :rm fichero1.txt fichero2.txt
Eliminado directorios
Si intentamos hacer directamente rm directorio/
nos dara error, tenemos
que hacer uso del flag -r
(recursivo) rm -r directorio/
Tenemos disponible el flag rf
(f de force) lo que hace que elimine todo
sin tener ningun tipo de consideracion. Esto es peligroso si se ejecuta
como administrador ya que si hacemos rm -rf /
sobre la raiz, estariamos
eliminando toda nuestra raiz del sistema operativo.
Busqueda de ficheros
Para esta tarea hacemos uso de find
lo que tenemos que pasarle como argumento seria
find directorio-donde-buscar/ otro-directorio-opcional/ -name auth.log
El flag
name
indica que quermos buscarlo por nombre
Por ejemplo si estamos parados en ~
(nuestro directorio raiz del usuario logeado)
podemos poner find /var/log /home/nahueldev23 -name auth.log
Veremos algo como esto:
find: ‘/var/log/private’: Permission denied
find: ‘/var/log/samba/cores’: Permission denied
find: ‘/var/log/sssd’: Permission denied
find: ‘/var/log/gdm3’: Permission denied
find: ‘/var/log/speech-dispatcher’: Permission denied
/var/log/auth.log
Esto es asi porque nuetro usuario no tiene permisos para realizar esta accion sobre esa ruta.
Si ignoramos esos “errores” veremos que dice /var/log/auth.log
esta en la ruta exacta.
Si hubieramos puesto la ruta anterior var/
tambien nos encuentra el fichero.
Ver todos estos erroes en medio es molesto. Por ahora no tenemos un opcion que nos permita
emitir esa salidas asi que como alternativa podemos hacer lo siguiente.
find ./var -name auth.log 2> /dev/null
, lo que hace es redirigir la salida de error que
sale en la pantalla a un fichero donde va a eliminarse.
Mejor dicho /dev/null
es un dispositivo especial de descarte, por lo que practivamente lo
estariamos moviendo hacia la nada.
Buscando fichero en el directorio actual
Si quisieramos buscar un fichero en el directorio actual
lo hariamos asi find . -name auth.log
Obteniendo un poco mas de informacion.
Podemos al comando anterior agregarle -ls
de la manera siguiente
find /var -name auth.log -ls 2> /dev/null
Usando wildcard para la busqueda
Podemos buscar por ejemplo cualquier cosa que termine de cierta manera.
Por ejemplo todos los ficheros que terminen en .log. Lo hacemos
de la siguiente manera.find /var/log -name '*.log' 2> /dev/null
Es importante en el comando anterior poner la busqueda entre ”
Buscando directorios
Los directorios son un tipo de fichero especial, por lo cual podemos
seguir usando find
con la ayuda de el flag -type d
podemos lograrlo.
Seria: find / -name log -type d
de esta manera estaria buscando en todos
nuestros directorios /
una Carpeta llamado log.
Buscando un fichero o directorio que haya sigo creado por un usuario en concreto
find /var/log -name '*' -user nahueldev23 2> /dev/null
con '*'
decimos
que nos busque cualquier archivo que haya sido creado por el usuario con -user