Linux-scripts gebruiken om uw bureaublad op te ruimen in Windows 10



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Wanneer u de kop van dit stuk voor het eerst leest, kan het u vergeven worden als u denkt dat er iets technisch niet klopt. Linux maakt immers geen deel uit van het Windows-besturingssysteem, toch? Het zijn twee totaal verschillende besturingssystemen. Voorheen was de enige manier om Linux-scripting met Windows in het verleden te gebruiken, het installeren van zoiets als Cygwin . of gebruik een dual-boot Linux-systeem of installeer zoiets als Samba .



Dat is allemaal veranderd in Windows 10! Er zijn verschillende distributies van Linux beschikbaar in de Microsoft Windows Store. Deze vorige Appuals-artikel over Kali Linux beschrijft een dergelijke methode om een ​​specifieke Linux-distributie in uw Windows 10-omgeving te verkrijgen.



Een van de voordelen van het gebruik van Linux-scripts op uw Windows-machine is dat u gebruik kunt maken van de krachtige Linux-scripttaal om taken te automatiseren, vooral als u meer bekend bent met Linux-scripts dan bijvoorbeeld Powershell- of Dos-batchbestanden. Dit artikel legt uit hoe je een Linux 'bash' -script schrijft om een ​​typisch Windows-bureaublad op te schonen. Als Linux nieuw voor je is, leer je de basisprincipes van dit artikel en maak je daarbij een handig hulpprogramma.



We zullen een standaard Ubuntu Linux Terminal gebruiken (beschikbaar in de Windows Store op Windows 10-machines) waarmee je bash, k ssh, git, apt en vele andere Linux-commando's kunt gebruiken. Dit moet worden geïnstalleerd als u dit nog niet heeft gedaan. De methode wordt uitgelegd hier .

De Linux-opdrachtregel

Nadat u Ubuntu heeft geïnstalleerd en uitgevoerd, krijgt u een opdrachtregelvenster, vergelijkbaar met het volgende. Dit geeft je een bash Linux, opdrachtregel:



We zullen nu ons script schrijven. U kunt het bestand met elke willekeurige editor bewerken, inclusief een Windows-editor zoals kladblok, of een Linux-editor zoals vi als u er zeker van bent dat u deze gebruikt.

Wanneer u de Ubuntu-terminal opent, is uw locatie uw homedirectory in de Ubuntu-werkruimte. Dit kan worden vastgesteld door de opdracht in te voeren bij de opdrachtprompt:

echo $ HOME

en het zal je homedirectory uitvoeren zoals getoond in de volgende schermafbeelding. Linux-formaat, gebruikt voorwaartse slashes die mappen vertegenwoordigen, zoals '/'.

Voor het gemak plaatsen we het script in de homedirectory.

De volgende stap is om de locatie van uw bureaublad te achterhalen, omdat dit bekend staat als een Linux-pad. We hebben dit nodig om acties uit te voeren op de bestanden in de juiste directory.

Typ 'cd /' in de terminal. Dit brengt u naar de root van uw Ubuntu-omgeving.

Typ vervolgens 'ls'

Dit geeft een lijst van alle mappen in Linux. Je zult zoiets als dit zien in de Linux-terminal:

We moeten uw gebruikersbureaublad vinden. Aangenomen dat dit op de C-schijf staat, ga dan naar de map 'mnt'. Dit is waar de Windows-schijven als volgt worden geïdentificeerd:

U moet dan weten in welke directory uw bureaublad zich bevindt. U kunt dit meestal in Windows vinden door met de rechtermuisknop op het bureaubladpictogram te klikken, zoals in de lijst met snelle toegang in Verkenner. De locatie van uw desktopdirectory wordt weergegeven:

Hieruit kun je met Linux in de terminal naar je directory gaan:

Daarom typ je in dit voorbeeld de terminal in, waarbij je onthoudt dat backslashes in Windows gelijk zijn aan forward slashes in Linux. In mijn geval is het pad dat nodig is in de opdracht 'directory wijzigen':

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

Vervolgens kunt u alle bestanden op uw bureaublad weergeven met behulp van 'ls':

Als het iets is zoals mijn bureaublad, krijg je een lange lijst met bestanden zoals:

Je kunt hier zien hoe rommelig mijn bureaublad eruitziet in Windows:

Er waren meer pictogrammen op mijn andere 2 monitoren, dus we moeten deze bestanden classificeren en ordenen! Het geleverde script neemt elk bestandstype en plaatst ze in een map met een relevante naam op het bureaublad.

Dit zijn bijvoorbeeld snelkoppelingsbestanden * .lnk-bestanden, dus we zullen ze naar een map met de naam 'SHORTCUTS' verplaatsen.
Op dezelfde manier worden afbeeldingsbestanden, zoals .jpg, .png, .bmp, .svg, verplaatst naar een map met de naam 'IMAGES'.
Documenten en Office-documenten, zoals Word-bestanden, d.w.z. .docx, .pdf, .xls, worden in een map met de naam 'OFFICEDOCS' geplaatst.

Dus wanneer het script wordt uitgevoerd, zullen alle documenten op een georganiseerde manier beschikbaar zijn, in de relevante directory, gemaakt voor die bestandscategorie. Hierdoor wordt het bureaublad overzichtelijker en worden uw bureaubladbestanden overzichtelijker. U kunt zoveel maptypes aanmaken en de bestandscriteria definiëren als u wilt. De bestanden hoeven niet alleen op bestandstype te worden georganiseerd, u kunt naar wens categoriemappen maken, zoals 'HRFILES' en 'PROJECTFILES'. In dit voorbeeld zullen we de bestanden ordenen op bestandstype.

Een categorie- en bestandslijst maken

Om deze applicatie te gebruiken, hebben we 2 bestanden nodig:

A) Een lijst met categorieën en bestandstypen om naar die categorieën te gaan die zijn opgeslagen in een door komma's gescheiden CSV-bestand. Elke categorienaam is de naam van de map waarin de bestanden op het bureaublad worden geplaatst. U kunt het CSV-bestand maken met elke gewenste editor. In dit voorbeeld gebruiken we kladblok.
B) Een Linux-script dat het categoriebestand leest en de vereiste opruimfunctie verwerkt.

Om een ​​bestand aan te maken in de huidige directory in het terminal type:

kladblok cleanup.csv

Aangezien het bestand in dit stadium niet zal bestaan, zal het u vragen een nieuw bestand aan te maken, dus klik gewoon op 'Ja'.

We zullen nu de volgende details invoeren, in het formaat 'categorie, bestandstype1, bestandstype2, bestandstype3, ..., enz.' 1 regel voor elke categorie dus:

SNELKOPPELINGEN, lnk 
AFBEELDINGEN, jpg, png, svg
DOCUMENTEN, txt, docx, doc, pdf

Het eerste veld is de naam van de directory op het bureaublad, waar de overige bestandstypen worden geplaatst. De overige velden zijn de bestandstypen die u naar de map wilt verplaatsen.

Daarom worden voor de map SHORTCUTS alle * .lnk-bestanden naar die map verplaatst. Voor de map IMAGES worden alle bestanden met * .jpg, *. Png en * .svg verplaatst naar de map IMAGES. Ten slotte verplaatsen we alle * .txt, *. Docx, *. Doc en * .pdf bestanden naar de map DOCUMENTS. Op deze manier organiseren we de bestanden in de juiste mappen.

Zodra we het CSV-bestand hebben gemaakt, zijn we klaar om het script te schrijven. We zullen het script cleanup.sh noemen. Overigens zal dit script minimale validatie hebben, dus je moet ervoor zorgen dat het CSV-bestand de juiste indeling heeft, anders werkt het niet! Het enige dat we in dit script zullen doen, is controleren of bestanden en mappen bestaan, als minimale controle.

U kunt het script in de terminal bewerken als u Unix-type editors kent, zoals vi, of u kunt gewoon kladblok gebruiken:

kladblok cleanup.sh

De actie van het script is om de naam in te stellen van het CSV-bestand dat we in het script lezen, en de locatie van het bureaublad dat we willen opschonen. We zullen variabelen instellen voor het opschoon CSV-bestand en de desktoplocatie. In mijn geval is dit als volgt. U moet de desktoplocatie voor uw eigen locatie vervangen. Houd er rekening mee dat alles tussen '' een tijdelijke aanduiding is waar u uw specifieke informatie moet invoeren.

Zo. de eerste 2 regels in het script zijn:

DESKTOP = / mnt / c / Gebruikers // Desktop 
CSV = cleanup.csv

Het volledige script is hieronder te zien. Lees de commentaren als je de commando's wilt begrijpen, en als je niet zeker bent van een commando, probeer dan “man” op de Linux commandoregel, om meer inzicht te krijgen in hoe het commando werkt.

Maak het opschoningsscript uitvoerbaar en voer het uit

Om het script vanaf de home-opdrachtregel uit te voeren, moet u het uitvoerbaar maken met de volgende opdracht:

chmod + x cleanup.sh

Om het script uit te voeren, moet u het volgende typen, omdat het in de huidige directory staat.

./cleanup.sh

Hier ziet u hoe mijn bureaublad eruit zag voordat en nadat het script werd uitgevoerd. U kunt zien dat de mappen met de verplaatste bestanden nu zijn gemaakt en dat het bureaublad veel minder rommelig is:

Voordat: Na:

en de SHORTCUTS-directory, waarbij alle snelkoppelingen van het bureaublad zijn verplaatst.

The Full Desktop Tidy Linux Script voor Windows

Let op de opmerkingen voorafgegaan door '#' in het script, aangezien ze uitleggen hoe het script werkt. # Stel variabelen in voor de locatie van het lokale bureaublad of een map die u wilt opschonen, en de naam van het CSV-bestand.

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

# Test om te zien of het csv-bestand voor opschonen bestaat, door een linux 'test' -opdracht te gebruiken en de vlag '-f' voor het bestaan ​​van het bestand.
# Als het bestand niet bestaat, voer dan een foutmelding uit en sluit het script af.

als [ ! -f $ {CSV}] dan 
echo Het bestand cleanup.csv bestaat niet.
uitgang -1
worden

# Converteer nu de CSV als deze in dos-indeling is opgeslagen naar Unix-indeling door regelteruglooptekens te verwijderen.
# Sla de uitvoer op in een tijdelijk bestand en hernoem het tijdelijke bestand terug naar de oorspronkelijke naam.

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

# Ga nu regel voor regel door het CSV-bestand en sla de naam op van het eerste argument, de
# categorie / mapnaam, waarop alle resterende argumenten de bestandstypen zijn die zullen zijn
# geplaatst in deze mappen.

tijdens het lezen van csvline 
Doen
aantal = 1
voor bestandstype in `echo '$ csvline' | tr, ' n'`
Doen
if [$ count -eq 1] dan
# Aangezien dit het eerste argument is, controleert u of de map al bestaat, en zo niet, maak deze dan aan.
als [ ! -d $ {DESKTOP} / $ filetype] dan
# De directory bestaat niet, dus we zullen deze aanmaken.
mkdir $ {DESKTOP} / $ bestandstype
worden
CATEGORIE = $ {filetype}
anders
# Voer een vriendelijk bericht uit dat aangeeft wat het script doet.
echo 'moving *. $ {filetype} naar $ {CATEGORY}'
# Geef geen foutmeldingen weer (d.w.z.> 2 / dev / null) bij het verplaatsen van de bestanden in het geval de bestanden niet bestaan,
# dus het 'mv'-commando is' stil '.
mv $ {DESKTOP} /*.$ {filetype} $ {DESKTOP} / $ {CATEGORY} 2> / dev / null
worden
count = `expr $ count + 1`
gedaan
gedaan< cleanup.csv
7 minuten gelezen