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

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

Dat veranderde allemaal 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 basis van dit artikel en creëer je een handig hulpprogramma in het proces.

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 hebt gedaan. De methode wordt hier uitgelegd.

De Linux-opdrachtregel

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

We gaan nu ons script schrijven. U kunt het bestand met elke editor bewerken, inclusief een Windows-editor zoals Kladblok, of een Linux-editor zoals vi als u zeker weet dat u het gebruikt.

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

echo $HOME

en het zal uw thuismap uitvoeren zoals weergegeven in de volgende schermafbeelding. Linux-indeling, gebruikt schuine strepen voorwaarts die mappen vertegenwoordigen, zoals "/".

Voor het gemak zullen we het script in de homedirectory plaatsen.

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 map.

Typ in de terminal "cd /". Hiermee gaat u naar het hoofdgedeelte van uw Ubuntu-omgeving.

Typ vervolgens "ls"

Dit geeft een overzicht van alle mappen in Linux. Je ziet zoiets als dit in de Linux-terminal:

We moeten uw gebruikersbureaublad vinden. Ervan uitgaande dat dit op de C-schijf staat, gaat u naar de map "mnt". Dit is waar de Windows-schijven als volgt worden geïdentificeerd:

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

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

Daarom typt u in dit voorbeeld de terminal in en onthoudt u dat backslashes in Windows gelijk zijn aan forwardslashes 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 zoiets is als 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 meegeleverde script neemt elk bestandstype en plaatst ze in een map met een relevante naam op het bureaublad.

Dus bijvoorbeeld snelkoppelingsbestanden, dit zijn *.lnk-bestanden, dus we zullen ze naar een map met de naam "SHORTCUTS" verplaatsen.
Evenzo 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 map, gemaakt voor die bestandscategorie. Dit zal het bureaublad overzichtelijker maken en uw bureaubladbestanden overzichtelijker maken. U kunt zoveel maptypen maken en de bestandscriteria definiëren als u wilt. De bestanden hoeven niet alleen op bestandstype te worden geordend, u kunt naar wens categoriemappen maken, zoals "HRFILES" en "PROJECTFILES". In dit voorbeeld organiseren we de bestanden op hun 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 in die categorieën te gaan 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 terminaltype:

kladblok opschonen.csv

Aangezien het bestand in dit stadium nog niet bestaat, 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 “category,filetype1,filetype2,filetype3,…,etc” 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 map 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 IMAGES-map worden alle bestanden met *.jpg,*.png en *.svg verplaatst naar de IMAGES-map. Ten slotte verplaatsen we alle * .txt-, *. Docx-, *. Doc- en * .pdf-bestanden naar de map DOCUMENTS. Op deze manier ordenen we de bestanden in de juiste mappen.

Zodra we het CSV-bestand hebben gemaakt, zijn we klaar om het script te schrijven. We noemen het script cleanup.sh. Trouwens, dit script heeft minimale validatie, 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 een 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 opruimen. We zullen variabelen instellen voor het opschonen CSV-bestand en de bureaubladlocatie. In mijn geval is dit als volgt. U moet de bureaubladlocatie zelf vervangen. Houd er rekening mee dat alles tussen "<" en ">" een tijdelijke aanduiding is waar u uw specifieke informatie moet invoeren.

Zo. de eerste 2 regels in het script zijn:

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

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

Maak het opruimscript 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, aangezien het zich in de huidige map bevindt.

./cleanup.sh

Hier ziet u hoe mijn bureaublad eruitzag 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 map SHORTCUTS, waarbij alle snelkoppelingen van het bureaublad zijn verplaatst.

Het volledige Desktop Tidy Linux-script voor Windows

Let op de opmerkingen voorafgegaan door "#" in het script, omdat 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=opschonen.csv

# Test om te zien of het csv-bestand voor opschonen bestaat, door een linux "test" -opdracht en de vlag "-f" voor het bestaan ​​​​van het bestand te gebruiken.
# 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
fi

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

tr -d '\r' < $CSV > temp.csv
mv temp.csv $CSV

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

tijdens het lezen van csvline
Doen
aantal = 1
voor bestandstype in `echo "$csvline" | tr, '\ n'`
Doen
als [ $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}/$bestandstype ] dan
# De map bestaat niet, dus we zullen deze maken.
mkdir ${DESKTOP}/$bestandstype
fi
CATEGORY=${bestandstype}
anders
# Voer een vriendelijk bericht uit dat aangeeft wat het script aan het doen is.
echo "verplaatst *.${filetype} naar ${CATEGORY}"
# Geef geen foutmeldingen weer (d.w.z. >2 /dev/null) bij het verplaatsen van de bestanden voor het geval de bestanden niet bestaan,
# dus de opdracht "mv" is "stil".
mv ${DESKTOP}/*.${filetype} ${DESKTOP}/${CATEGORY} 2> /dev/null
fi
count=`expr $count + 1`
gedaan
klaar < cleanup.csv
Facebook Twitter Google Plus Pinterest