Cómo usar scripts de Linux para ordenar su escritorio en Windows 10



Pruebe Nuestro Instrumento Para Eliminar Los Problemas

Cuando lea por primera vez el titular de este artículo, se le podría perdonar por pensar que algo es técnicamente incorrecto. Después de todo, Linux no es parte del sistema operativo Windows, ¿verdad? Son dos sistemas operativos completamente diferentes. Anteriormente, la única forma de usar secuencias de comandos de Linux con Windows en el pasado era instalar algo como Cygwin . o use un sistema Linux de arranque dual o instale algo como Samba .



¡Todo eso cambió en Windows 10! Hay varias distribuciones de Linux disponibles en Microsoft Windows Store. Este anterior Artículo de Appuals sobre Kali Linux describe uno de esos métodos para obtener una distribución de Linux específica en su entorno de Windows 10.



Una de las ventajas de usar scripts de Linux en su máquina con Windows es que puede hacer uso del poderoso lenguaje de scripting de Linux para automatizar tareas, especialmente si está más familiarizado con los scripts de Linux que, por ejemplo, los archivos por lotes de Powershell o Dos. Este artículo explica cómo escribir un script 'bash' de Linux para limpiar un escritorio de Windows típico. Si es nuevo en Linux, aprenderá los conceptos básicos de este artículo y creará una utilidad útil en el proceso.



Usaremos una Terminal Linux Ubuntu básica (disponible en la Tienda Windows en máquinas con Windows 10) que le permite usar bash, k ssh, git, apt y muchos otros comandos de Linux. Deberá instalarlo si aún no lo ha hecho. El método se explica aquí .

La línea de comandos de Linux

Una vez que haya instalado Ubuntu y lo haya ejecutado, obtendrá una ventana de línea de comandos, similar a la siguiente. Esto le dará una línea de comando bash Linux:



Ahora escribiremos nuestro guión. Puede editar el archivo con cualquier editor, incluido un editor de Windows, como el bloc de notas, o un editor de Linux, como vi, si está seguro de utilizarlo.

Cuando abra la terminal de Ubuntu, su ubicación será su directorio de inicio, en el espacio de trabajo de Ubuntu. Esto se puede determinar ingresando el comando en el símbolo del sistema:

echo $HOME

y generará su directorio de inicio como se muestra en la siguiente captura de pantalla. El formato Linux utiliza barras inclinadas que representan directorios, como '/'.

Para mayor comodidad, colocaremos el script en el directorio de inicio.

El siguiente paso es averiguar la ubicación de su escritorio, ya que se conoce como ruta de Linux. Lo necesitaremos para realizar acciones en los archivos en el directorio correcto.

En el terminal escriba 'cd /'. Esto lo lleva al área raíz de su entorno Ubuntu.

Luego escribe 'ls'

Esto enumera todos los directorios en Linux. Verá algo como esto en la terminal de Linux:

Necesitamos encontrar su escritorio de usuario. Suponiendo que está en la unidad C, cambie al directorio 'mnt'. Aquí es donde las unidades de Windows se identificarán así:

Luego, debe saber en qué directorio se encuentra su escritorio. Por lo general, puede encontrar esto en Windows haciendo 'clic derecho' en el icono del escritorio de la lista 'Acceso rápido' en el Explorador de archivos. Se mostrará la ubicación del directorio de su escritorio:

Desde aquí, puede cambiar a su directorio usando Linux en la terminal:

Por lo tanto, en este ejemplo, escribe en la terminal, recordando que las barras invertidas en Windows son equivalentes a las barras diagonales en Linux. En mi caso, la ruta necesaria en el comando 'cambiar directorio' es:

cd / mnt / c / Users / gofor / OneDrive / Desktop

Luego, puede enumerar todos los archivos en su escritorio usando 'ls':

Si se parece en algo a mi escritorio, obtendrá una larga lista de archivos como este:

Puedes ver lo desordenado que se ve mi escritorio en Windows aquí:

Había más iconos en mis otros 2 monitores, ¡así que tenemos que clasificar y organizar estos archivos! La secuencia de comandos proporcionada tomará cada tipo de archivo y los colocará en una carpeta con un nombre relevante en el escritorio.

Entonces, por ejemplo, archivos de acceso directo, estos serán archivos * .lnk, por lo que los trasladaremos a una carpeta llamada “ACCESOS DIRECTOS”.
Del mismo modo, los archivos de imagen, como .jpg, .png, .bmp, .svg se moverán a una carpeta llamada 'IMÁGENES'.
Los documentos y documentos de Office, como archivos de Word, es decir, .docx, .pdf, .xls, se colocarán en una carpeta llamada 'OFFICEDOCS'.

Entonces, cuando se ejecuta el script, todos los documentos estarán disponibles de manera organizada, en el directorio relevante, creado para esa categoría de archivo. Esto despejará el escritorio y hará que sus archivos de escritorio estén más organizados. Puede crear tantos tipos de carpetas y definir los criterios de archivo como desee. Los archivos no necesitan estar organizados solo por tipo de archivo, puede crear carpetas de categorías como desee, como “HRFILES” y “PROJECTFILES”. En este ejemplo, organizaremos los archivos por su tipo de archivo.

Crear una lista de categorías y archivos

Para utilizar esta aplicación, necesitaremos 2 archivos:

A) Una lista de categorías y tipos de archivos para incluir en esas categorías contenidas en un archivo CSV delimitado por comas. El nombre de cada categoría será el nombre del directorio en el que se colocarán los archivos en el escritorio. Puede crear el archivo CSV con cualquier editor preferido. En este ejemplo, usaremos el bloc de notas.
B) Un script de Linux que leerá el archivo de categoría y procesará la función ordenada requerida.

Para crear un archivo en el directorio actual en el tipo de terminal:

notepad cleanup.csv

Como el archivo no existirá en esta etapa, le solicitará que cree un nuevo archivo, así que presione 'Sí'.

Ahora ingresaremos los siguientes detalles, en el formato “categoría, tipo de archivo1, tipo de archivo2, tipo de archivo3,…, etc.” 1 línea para cada categoría así:

ACCESOS DIRECTOS, lnk 
IMÁGENES, jpg, png, svg
DOCUMENTOS, txt, docx, doc, pdf

El primer campo será el nombre del directorio en el escritorio, donde se colocarán los tipos de archivos restantes. Los campos restantes son los tipos de archivo que desea mover a la carpeta.

Por lo tanto, para la carpeta ATAJOS, todos los archivos * .lnk se moverán a esa carpeta. Para la carpeta IMAGES, todos los archivos con * .jpg, *. Png y * .svg se moverán a la carpeta IMAGES. Finalmente, movemos todos los archivos * .txt, *. Docx, *. Doc y * .pdf a la carpeta DOCUMENTS. De esta forma, estamos organizando los archivos en los directorios correctos.

Una vez que hayamos creado el archivo CSV, estamos listos para escribir el script. Llamaremos al script cleanup.sh. Por cierto, este script tendrá una validación mínima, por lo que debe asegurarse de que el archivo CSV esté en el formato correcto, ¡o no funcionará! Todo lo que haremos en este script es verificar que existan archivos y carpetas, como una verificación mínima.

Puede editar el script en la terminal si conoce editores de tipo Unix, como vi, o simplemente puede usar el bloc de notas:

notepad cleanup.sh

La acción del script es establecer el nombre del archivo CSV que estamos leyendo en el script y la ubicación del escritorio que queremos limpiar. Estableceremos variables para el archivo CSV de limpieza y la ubicación del escritorio. En mi caso, esto es como sigue. Deberá reemplazar la ubicación del escritorio por la suya. Tenga en cuenta que cualquier cosa entre “” es un marcador de posición en el que debe ingresar su información específica.

Entonces. las primeras 2 líneas del guión son:

DESKTOP = / mnt / c / Users // Escritorio 
CSV = cleanup.csv

El guión completo se puede ver a continuación. Lea los comentarios si desea comprender los comandos, y si no está seguro de un comando, pruebe con 'man' en la línea de comandos de Linux para obtener más información sobre cómo funciona el comando.

Haga que el script de limpieza sea ejecutable y ejecútelo

Para ejecutar el script desde la línea de comandos de inicio, necesitará hacerlo ejecutable con el siguiente comando:

chmod + x cleanup.sh

Para ejecutar el script, deberá escribir lo siguiente, tal como se encuentra en el directorio actual.

./cleanup.sh

Así es como se veía mi escritorio antes y después de ejecutar el script. Puede ver que las carpetas que contienen los archivos movidos ahora se han creado y que el escritorio está mucho menos desordenado:

Antes de: Después:  

y el directorio SHORTCUTS, con todos los accesos directos movidos desde el escritorio.

El script Tidy Linux de escritorio completo para Windows

Tenga en cuenta los comentarios con el prefijo '#' en el script, ya que explican cómo funciona el script. # Establezca variables para la ubicación del escritorio local o cualquier directorio que desee limpiar y el nombre del archivo CSV.

DESKTOP = / mnt / c / Users / gofor / OneDrive / Desktop 
CSV = cleanup.csv

# Pruebe para ver si existe el archivo csv de limpieza, usando un comando de 'prueba' de Linux y la marca '-f' para la existencia del archivo.
# Si el archivo no existe, muestre un mensaje de error y luego salga del script.

Si [ ! -f $ {CSV}] entonces 
echo El archivo cleanup.csv no existe.
salida -1
ser

# Ahora convierta el CSV si se ha guardado en formato DOS a formato Unix eliminando los caracteres de retorno de carro.
# Guarde la salida en un archivo temporal, luego cambie el nombre del archivo temporal por el nombre original.

tr -d ' r' temp.csv 
mv temp.csv $ CSV

# Ahora, revise el archivo CSV línea por línea y almacene el nombre del primer argumento, que es el
# nombre de categoría / directorio, sobre el cual, todos los argumentos restantes son los tipos de archivo que serán
# colocado en estos directorios.

mientras lee csvline 
hacer
cuenta = 1
para el tipo de archivo en `echo '$ csvline' | tr, ' n'`
hacer
si [$ count -eq 1] entonces
# Como este es el primer argumento, verifique si la carpeta ya existe y, si no es así, créela.
Si [ ! -d $ {DESKTOP} / $ filetype] luego
# El directorio no existe, así que lo crearemos.
mkdir $ {DESKTOP} / $ filetype
ser
CATEGORÍA = $ {tipo de archivo}
más
# Genere un mensaje amigable que indique lo que está haciendo el script.
echo 'moviendo *. $ {filetype} a $ {CATEGORY}'
# No muestre ningún mensaje de error (es decir,> 2 / dev / null) al mover los archivos en caso de que los archivos no existan,
# por lo que el comando 'mv' es 'silencioso'.
mv $ {DESKTOP} /*.$ {filetype} $ {DESKTOP} / $ {CATEGORY} 2> / dev / null
ser
count = `expr $ count + 1`
hecho
hecho< cleanup.csv
7 minutos de lectura