Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Utilidades - vRenamerUtilidades - XC

Utilidades - WCD




Utilidades - WCD




Copyright

Copyright © José Luis Lara Carrascal  2009-2023   http://manualinux.es



Sumario

Introducción
Instalación
Opciones de línea de comandos
Iniciamos WCD
Enlaces




Introducción  

WCD es una utilidad de línea de comandos que nos permite cambiar de directorio de una forma muy rápida. Su desarrollo está inspirado en el histórico programa de MS-DOS, Norton Change Directory (NCD), software que el creador de WCD echaba en falta cuando trabajaba con sistemas HP Unix (HP-UX) allá por el año 1995. Hasta el año 1997 no llegaría la primera versión de WCD, desde entonces, las características del programa han ido progresando en consonancia con la evolución de la informática en general, y en estos momentos, tiene soporte de UTF-8 e idiomas, entre otras funciones.



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado WCD para la elaboración de este documento.

* GCC - (13.2.0) o Clang - (16.0.6)
* Make - (4.4.1)
* Gettext - (0.22)

Librerías de Desarrollo

* Ncurses - (6.4)

Módulos de Perl

* Podlators - (5.01)
* Pod::Parser - (1.66)
* Pod2html - (5.38.0)



Descarga

wcd-6.0.5.tar.gz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'

Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
IPA
$ export {C,CXX}FLAGS+=' -fipa-pta'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
En versiones inferiores a GCC 10, sustituir auto por el número de núcleos que tenga nuestro procesador. Si sólo tiene uno, utilizar el parámetro -flto
Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
LTO
$ export {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos en el proceso de compilación
$ export {C,CXX}FLAGS+=' -w'

Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura
$ export LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64"
Cada usuario tendrá que establecer la ruta de búsqueda de directorios, en función de la distribución que utilice.

Establecer el uso de enlazador dinámico para Mold
$ export LDFLAGS+=' -fuse-ld=mold'

Establecer el uso de enlazador dinámico para LLD
Clang
$ export LDFLAGS+=' -fuse-ld=lld'
Optimizaciones complementarias LTO/ThinLTO de LLD
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt'
Optimizaciones complementarias LTO de LLD
$ export LDFLAGS+=" -Wl,--lto-partitions=$(nproc)"
Optimizaciones complementarias ThinLTO de LLD
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(nproc)"

Eliminar los símbolos innecesarios para la ejecución del programa
$ export LDFLAGS+=" -Wl,-s"

Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++

Extracción  Bloc de Notas

$ tar zxvf wcd-6.0.5.tar.gz
$ cd wcd-6.0.5
$ sed -i 's:-O2::' src/Makefile

Explicación de los comandos

sed -i 's:-O2::' src/Makefile : Borra el nivel de optimización predefinido del paquete, para que no sobreescriba el establecido en el manual.

Compilación

$ make

Parámetros de compilación opcionales

-j$(nproc) : Establece el número de procesos de compilación en paralelo, en función del número de núcleos e hilos que tenga nuestro procesador, tomando como referencia la información mostrada por el sistema con el comando correspondiente. Si nuestro procesador es mononúcleo de un solo hilo, no añadir esta opción.

Instalación como root

$ su
# make install -C src install-profile DOTWCD=1
# chmod 755 /etc/profile.d/wcd.sh

Explicación de los comandos

make install -C src install-profile DOTWCD=1 : Instala el programa y un script de shell con la función de bash para poder hacer uso del mismo. Cuando ejecutemos el programa por primera vez, ya sea como usuario o como root, éste creará un archivo con el nombre wcd.go en ~/.wcd/bin.

chmod 755 /etc/profile.d/wcd.sh : Le damos permisos de ejecución al script de shell instalado para que el usuario también pueda acceder a la función de bash, para poder hacer uso del programa.

Borrar las locales adicionales instaladas con la utilidad BleachBit

$ su -c "bleachbit -c system.localizations"

Estadísticas de Compilación e Instalación de WCD
 
Estadísticas de Compilación e Instalación de WCD
CPU AMD Ryzen 5 5500
MHz 3593.250 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.5.0-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.38
Enlazador dinámico LLD 16.0.6
Compilador Clang 16.0.6
Parámetros de optimización -03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt
Parámetros de compilación -j12
Tiempo de compilación 2"
Archivos instalados 31
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 1,8 MB

Directorio de configuración personal

~/.wcd Es el directorio de configuración personal de WCD en nuestro home.
~/.wcd/bin/wcd.go Es el archivo vacío que se crea de forma automática cuando ejecutamos el programa por primera vez.
~/.wcd/.treedata.wcd Es el archivo de datos predefinido que WCD utilizará para buscar las coincidencias con los directorios a los que queramos cambiar.
~/.wcd/.extra.wcd Es el archivo de datos adicional que WCD utilizará para buscar las coincidencias con los directorios a los que queramos cambiar. Este archivo sirve para añadir directorios adicionales a los predefinidos en el archivo anterior y su creación es opcional.
~/.wcd/.ban.wcd Es el archivo que contiene las rutas ubicadas en el archivo de datos predefinido (.treedata.wcd)  o en el archivo de datos adicional (.extra.wcd) que no queremos que aparezcan en la búsqueda de directorios, el mismo se crea cuando le pasamos el parámetro -b dentro y ejecutamos el programa dentro del directorio que pretendemos omitir. Su creación es opcional.
~/.wcd/.alias.wcd Es el archivo alternativo a ~/.bashrc que podemos utilizar para almacenar la función del programa. Su creación es opcional y para su uso se necesita pasarle el parámetro -l a WCD.
~/.wcd/.stack.wcd En este archivo, WCD guarda los últimos directorios buscados.
~/.wcd/.rtdata.wcd Es el archivo de datos que contiene las rutas relativas desde una <ruta>. Ver opciones +S, -n y +n. Al igual que el resto de archivos de configuración, su formato es de texto y, por lo tanto, son editables con cualquier editor compatible.

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

wcd-6.0.5-scripts.tar.gz

$ su
# tar zxvf wcd-6.0.5-scripts.tar.gz
# cd wcd-6.0.5-scripts
# ./Desinstalar_wcd-6.0.5

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf wcd-6.0.5-scripts.tar.gz
# cd wcd-6.0.5-scripts
# ./Respaldar_wcd-6.0.5

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_wcd-6.0.5



Opciones de línea de comandos  

[jose@localhost ~]$ wcd -h
Uso: wcd [opciones] [directorio]

directorio: Nombre del directorio al que desea cambiarse.
            Se pueden emplear los comodines *, ? y [conjunto]

opciones:
  -a                      Añade la ruta actual al archivo de árbol
  -aa                     Añade la ruta actual y sus padres al archivo de árbol
  -A RUTA                 Añade árbol desde RUTA
  -b                      Prohíbe la ruta actual
  -c,  --direct-cd        Usa modo CD directo
  -d UNIDAD               Establece la UNIDAD para almacenar los archivos de la pila y el script go (DOS)
  -e                      Añade la ruta actual al archivo extra de árbol
  -ee                     Añade la ruta actual y sus padres al archivo extra de árbol
  -E RUTA                 Añade árbol desde RUTA al archivo extra del árbol
  -f ARCHIVO              Usa archivo extra de árbol
  +f ARCHIVO              Añade archivo extra de árbol
  -g                      Ambiente gráfico
  -gd                     Ambiente gráfico, impresión del árbol
  -G RUTA                 Establece la RUTA del script go
  -GN, --no-go-script     No emplees el script go
  -h,  --help             Despliega esta ayuda
  -i,  --ignore-case      Ignora las diferencias entre mayúsculas y minúsculas
  +i,  --no-ignore-case   Distingue entre mayúsculas y minúsculas (por defecto)
  -I,  --ignore-diacritics     Ignora signos diacríticos
  +I,  --no-ignore-diacritics  contempla signos diacríticos (por defecto)
  -j,  --just-go          Modo directo
  -k,  --keep-paths       Retén las rutas
  -K,  --color            Colores
  -l ALIAS                Crea un ALIAS para el directorio actual
  -L,  --license          Imprime la Licencia del Programa
  -ls                     List the aliases
  -m DIRECTORIO           Crea DIRECTORIO, y añádelo al archivo de árbol
  -M DIRECTORIO           Crea DIRECTORIO, y añádelo al archivo extra de árbol
  -n RUTA                 Emplea archivo de árbol relativo en RUTA
  +n RUTA                 Añade archivo de árbol relativo en RUTA
  -N,  --numbers          Emplea números
  -o                      Emplea la salida estándar (stdout)
  -od, --to-stdout        Imprime correspondencias
  -q,  --quiet            Operación silenciosa
  -r DIRECTORIO           Remueve DIRECTORIO
  -rmtree DIR.            Remueve recursivamente desde DIRECTORIO
  -s                      Explora disco desde $HOME
  -S RUTA                 Explora disco desde RUTA
  +S RUTA                 Explora disco desde RUTA, crea archivo de árbol relativo
  -t                      No remuevas /tmp_mnt de las rutas
  -T,  --ascii-tree       Dibuja el árbol con caracteres ASCII
  -Ta, --alt-tree-nav     Navegación de árbol alternativa
  -TC, --center-tree      Vista centrada en árbol
  -Tc, --compact-tree     Árbol compacto
  -Td, --cjk-width        soporte para fuentes antiguas CJK
  -u USUARIO              Emplea archivo de árbol de USUARIO
  +u USUARIO              Añade archivo de árbol de USUARIO
  -v,  --verbose          Imprime mensajes de información
  -V,  --version          Imprime información sobre la versión
  -w,  --wild-match-only  Emplea sólo concordancias inexactas
  -x RUTA                 Excluye RUTA durante la exploración del disco
  -xf ARCHIVO             Excluye rutas contenidas en ARCHIVO
  -y,  --assume-yes       suprime las confirmaciones suponiendo 'Sí'
  -z NÚMERO               Establece el tamaño máximo para la pila
  -[NÚMERO]               Mete directorio a la pila (NÚMERO veces)
  +[NÚMERO]               Saca directorio de la pila (NÚMERO veces)
  =                       Muestra la pila



Iniciamos WCD  Bloc de Notas

1) Crear el archivo de datos


La primera vez que ejecutemos el programa, podemos crear un archivo de datos de todos los directorios que tengamos en nuestro sistema, incluidas las particiones montadas. El parámetro -A siempre crea un árbol de directorios a partir de la ruta que le indiquemos al programa. Un ejemplo:

[jose@localhost ~]$ wcd -A /
Wcd: Favor de esperar. Explorando el disco. Construyendo el archivo de árbol de rutas para /

2) Excluir directorios en la creación del archivo de datos

Si queremos excluir algún directorio en la creación del archivo de datos, sólo tenemos que añadir la ruta del mismo después del parámetro -x. Sin embargo, y esto me traía un poco de calle, tenemos que ejecutar el comando desde el directorio a partir del cual se empezará a examinar el disco para crear el correspondiente archivo de datos, es decir, en este caso, desde el directorio raíz del sistema, de lo contrario, la exclusión de directorios no funciona. Un ejemplo:

[jose@localhost ~]$ cd /
[jose@localhost /]$ wcd -x /proc -x /sys -x /root -x /tmp -A /
Wcd: Favor de esperar. Explorando el disco. Construyendo el archivo de árbol de rutas para /

3) Añadir directorios adicionales

Si por ejemplo, hemos creado un nuevo directorio o añadido una nueva partición, utilizaremos siempre el parámetro -E seguido de la ruta al directorio en cuestión. Esto crea el archivo ~/.extra.wcd y evita tener que volver a examinar el sistema entero y sobreescribir el archivo de datos predefinido del programa. Un ejemplo:

[jose@localhost ~]$ wcd -E /home/jose/Documentos
Wcd: Favor de esperar. Explorando el disco. Construyendo el archivo de árbol de rutas para /home/jose/Documentos

4) Omitir directorios en la búsqueda de éstos

Para omitir directorios que estén cacheados en el archivo de datos, en la búsqueda de coincidencias con el comando que ejecutemos, basta ejecutar WCD con el parámetro -b dentro del directorio que pretendamos omitir, esto creará un archivo en nuestro home, con el nombre .ban.wcd, al que se añadirá la ruta completa del directorio omitido. Un ejemplo:

[jose@localhost ~]$ cd /var/cache/polipo
[jose@localhost var]$ wcd -b
Wcd: /var añadido al archivo /home/jose/.ban.wcd

Aunque resulta mucho más rápido crear el archivo de forma manual o editar el que hayamos creado con el comando anterior, y añadir los directorios que creamos oportuno. Un ejemplo:

/var/cache/polipo
/mnt/win_e/Cache
/usr/src

5) Empezar a usarlo

Cuando ya lo tengamos configurado, sólo nos queda probarlo y comprobar su rapidez de uso. Un ejemplo:

[jose@localhost ~]$ wcd qingy

a /etc/qingy
b /mnt/win_e/Descargas/Linux/Aplicaciones/Escritorio/Temas/qingy
c /usr/local/lib/qingy
d /usr/local/share/qingy

Perfecta concordancia para 4 directorios.
Favor de elegir uno (<Intro> para abortar):

Ahora sólo me queda elegir entre los 4 directorios coincidentes con el nombre que he escrito, pulsando las teclas a, b, c o d, en este caso pulso la a. Y automáticamente me lleva al directorio /etc/qingy. Para anular y volver a la línea de comandos, pulsaremos siempre la tecla Retorno.

-> /etc/qingy
[jose@localhost qingy]$

6) Uso de comodines

Claro que no es necesario poner el nombre completo, y podemos utilizar comodines, eso sí, se mostrarán un número mayor de posibles coincidencias.

[jose@localhost ~]$ wcd e1*

a /home/jose/manualinux/scripts/paquetes/e17-svn-scripts
b /mnt/win_c/windows/assembly/NativeImages_v2.0.50727_32/CustomMarshalers/e148
c /mnt/win_e/Descargas/Linux/Aplicaciones/Escritorio/e16
d /mnt/win_e/Descargas/Linux/Aplicaciones/Escritorio/e17
e /mnt/win_e/Descargas/Linux/Aplicaciones/Escritorio/Temas/e16
f /mnt/win_e/Descargas/Linux/Aplicaciones/Escritorio/Temas/e17
g /opt/e17
h /opt/e17/doc/e17genmenu
i /opt/e17/share/e_utils/data/e17genmenu
j /usr/local/share/castle/data/levels/doom/e1m1
k /usr/share/omf/e16menuedit2-0.0.2
l /usr/src/linux-2.6.29/drivers/net/e1000
m /usr/src/linux-2.6.29/drivers/net/e1000e
n /usr/src/linux-2.6.29/firmware/e100
o /usr/src/linux-2.6.30/drivers/net/e1000
p /usr/src/linux-2.6.30/drivers/net/e1000e
q /usr/src/linux-2.6.30/firmware/e100
r /usr/X11R7/lib/e16
s /usr/X11R7/share/doc/e16
t /usr/X11R7/share/e16
u /usr/X11R7/share/gnome/help/e16menuedit2-0.0.2

Fuerte coincidencia para 30 directorio   w=arriba x=abajo ?=ayuda  Página 2/2
Por favor, elija uno (<Retorno> para anular):

Con las flechas direccionales superior e inferior podemos cambiar de página, para poder visualizar el total de resultados. Para la selección del directorio correspondiente, pulsaremos la tecla que aparezca al lado de la ruta del mismo.

7) Modo gráfico

Lo de modo gráfico es un decir, la típica interfaz de Ncurses, que a mí personalmente me deja indiferente (rima incluida). Un ejemplo:

[jose@localhost ~]$ wcd -g 64x64

</>-+- home --- jose -+- Documentos --- Entornos de Escritorio --- Iconos -+- g
    |                 |                                                    `- g
    |                 `- .icons -+- 64x64
    |                            `- gnant --- 64x64
    `- usr -+- local --- share --- icons --- hicolor --- 64x64
            `- share -+- amsn --- desktop-icons --- 64x64
                      |- apps -+- kdeprint --- icons --- crystalsvg --- 64x64
                      |        `- khtml --- icons --- crystalsvg --- 64x64
                      |- hplip --- data --- images --- 64x64
                      `- icons -+- crystalsvg --- 64x64
                                |- hicolor --- 64x64
                                |- nuoveXT2 --- 64x64
                                |- Smokey-Blue --- 64x64
                                `- Smokey-Red --- 64x64







--------------------------------------------------------------------------------
/
/ = busca adelante,  ? = busca atrás,  : = ayuda

Con las flechas direccionales podemos ir cambiando de directorio hasta llegar al que pretendamos ir, aquí la rapidez se queda un poco en entredicho. Si la coincidencia de la búsqueda es exacta, el programa nos llevará siempre al directorio en cuestión, esto sólo aparece cuando existen más de una coincidencia, o si hemos usado comodines, más de una aproximación a lo que hemos escrito.



Enlaces  


http://waterlan.home.xs4all.nl >> La web de WCD.

http://wcd.sourceforge.net >> Enlace alternativo hospedado en SourceForge.


Foro Galería Blog


Actualizado el 31-08-2023

Utilidades - WCD

Utilidades - vRenamerUtilidades - XC