Så här använder du Linux-skript för att städa upp ditt skrivbord i Windows 10



Prova Vårt Instrument För Att Eliminera Problem

När du först läste rubriken för det här stycket kan du bli förlåtad för att tro att något är tekniskt felaktigt. När allt kommer omkring är Linux inte en del av Windows-operativsystemet, eller hur? De är två helt olika operativsystem. Tidigare har det enda sättet att använda Linux-skript med Windows tidigare varit att antingen installera något liknande Cygwin . eller använd ett dubbelt start Linux-system eller installera något liknande Samba .



Allt som förändrats i Windows 10! Det finns flera distributioner av Linux tillgängliga i Microsoft Windows Store. Detta föregående Appuals artikel om Kali Linux beskriver en sådan metod för att få en specifik Linux-distribution i din Windows 10-miljö.



En av fördelarna med att använda Linux-skript på din Windows-maskin är att du kan använda det kraftfulla Linux-skriptspråket för att automatisera uppgifter, speciellt om du är mer bekant med Linux-skript än att säga Powershell eller Dos-batchfiler. Den här artikeln förklarar hur man skriver ett Linux 'bash' -skript för att städa upp ett typiskt Windows-skrivbord. Om du är ny på Linux kommer du att lära dig grunderna från den här artikeln och skapa ett användbart verktyg i processen.



Vi kommer att använda en grundläggande Ubuntu Linux Terminal (tillgänglig i Windows Store på Windows 10-maskiner) som låter dig använda bash, k ssh, git, apt och många andra Linux-kommandon. Detta måste installeras om du inte redan har gjort det. Metoden förklaras här .

Linux-kommandoraden

När du har installerat Ubuntu och kör det får du ett kommandoradsfönster, liknande följande. Detta ger dig en bash Linux, kommandorad:



Vi ska nu skriva vårt manus. Du kan redigera filen med vilken redigerare som helst, inklusive en Windows-redigerare som anteckningsblock eller en Linux-redigerare som vi om du är säker på att använda den.

När du öppnar Ubuntu-terminalen kommer din plats att vara din hemkatalog i Ubuntu-arbetsytan. Detta kan fastställas genom att ange kommandot vid kommandotolken:

echo $ HOME

och den matar ut din hemkatalog som visas i följande skärmdump. Linux-format, använder snedstreck som representerar kataloger, till exempel “/”.

För enkelhets skull placerar vi skriptet i hemkatalogen.

Nästa steg är att ta reda på platsen för skrivbordet, eftersom det kallas en Linux-sökväg. Vi behöver detta för att utföra åtgärder på filerna i rätt katalog.

I terminalen skriver du “cd /”. Detta tar dig till rotområdet i din Ubuntu-miljö.

Skriv sedan “ls”

Detta listar alla kataloger i Linux. Du kommer att se något liknande i Linux-terminalen:

Vi måste hitta ditt användarskrivbord. Förutsatt att detta finns på C-enheten, byt till 'mnt' -katalogen. Det är här windows-enheterna kommer att identifieras så:

Du måste sedan veta vilken katalog ditt skrivbord finns. Du kan vanligtvis hitta detta i Windows genom att ”högerklicka” på skrivbordsikonen så som från listan ”Snabbåtkomst” i File Explorer. Din skrivbords katalogplats visas:

Från detta kan du byta till din katalog med Linux i terminalen:

Därför skriver du i det här exemplet terminalen och kommer ihåg att bakåtvända snedstreck i Windows motsvarar snedstreck i Linux. I mitt fall är sökvägen som behövs i kommandot 'ändra katalog':

cd / mnt / c / Användare / gofor / OneDrive / Desktop

Sedan kan du lista alla filer på skrivbordet med 'ls':

Om det är något som mitt skrivbord får du en lång lista med filer så:

Du kan se hur rörigt mitt skrivbord ser ut i Windows här:

Det fanns fler ikoner på mina andra två bildskärmar, så vi måste klassificera och organisera dessa filer! Skriptet som tillhandahålls tar varje filtyp och placerar dem i en relevant mapp på skrivbordet.

Så till exempel genvägsfiler, dessa kommer att vara * .lnk-filer, så vi flyttar dem till en mapp som heter “SHORTCUTS”.
På samma sätt flyttas bildfiler, till exempel .jpg, .png, .bmp, .svg till en mapp som heter 'BILDER'.
Dokument och Office-dokument, såsom ordfiler, dvs. .docx, .pdf, .xls, kommer att placeras i en mapp som heter 'OFFICEDOCS'.

Så när skriptet körs kommer alla dokument att vara tillgängliga på ett organiserat sätt, i den relevanta katalogen, skapad för den filkategorin. Detta kommer att rensa skrivbordet och göra dina skrivbordsfiler mer organiserade. Du kan skapa så många mapptyper och definiera filkriterierna som du vill. Filerna behöver inte organiseras efter bara filtyp, du kan skapa kategorimappar som du vill, till exempel “HRFILES” och “PROJECTFILES”. I det här exemplet ordnar vi filerna efter deras filtyp.

Skapa en kategori- och fillista

För att kunna använda denna applikation behöver vi två filer:

A) En lista över kategorier och filtyper för att gå in i de kategorier som finns i en kommaseparerad CSV-fil. Varje kategorinamn är namnet på katalogen som filerna placeras i på skrivbordet. Du kan skapa CSV-filen med valfri redigerare. I det här exemplet använder vi anteckningar.
B) Ett Linux-skript som läser kategorifilen och bearbetar den nödvändiga städfunktionen.

Så här skapar du en fil i den aktuella katalogen i terminalen:

anteckningsblockrensning.csv

Eftersom filen inte existerar i detta skede kommer den att begära att du skapar en ny fil, så tryck bara på “Ja”.

Vi kommer nu att ange följande detaljer, i formatet 'kategori, filtyp1, filtyp2, filtyp3, ..., etc' 1 rad för varje kategori sålunda:

KORTFATTADE, lnk 
BILDER, jpg, png, svg
DOKUMENT, txt, docx, doc, pdf

Det första fältet är namnet på katalogen på skrivbordet, där de återstående filtyperna kommer att placeras. De återstående fälten är de filtyper du vill flytta till mappen.

För SHORTCUTS-mappen flyttas därför alla * .lnk-filerna till den mappen. För mappen BILDER flyttas alla filer med * .jpg, *. Png och * .svg till mappen BILDER. Slutligen flyttar vi alla * .txt-, *. Docx-, *. Doc- och * .pdf-filer till mappen DOKUMENT. På detta sätt organiserar vi filerna i rätt kataloger.

När vi har skapat CSV-filen är vi redo att skriva manuset. Vi kommer att kalla skriptet, cleanup.sh. Förresten, det här skriptet har minimal validering, så du måste se till att CSV-filen är i rätt format, annars fungerar det inte! Allt vi kommer att göra i detta skript är att kontrollera att filer och mappar finns, som en minimal kontroll.

Du kan redigera skriptet i terminalen om du känner till Unix-redigerare, till exempel vi, eller så kan du helt enkelt använda anteckningar:

rengöring av anteckningar. sh

Handlingen med skriptet är att ställa in namnet på CSV-filen vi läser i skriptet och platsen för skrivbordet vi vill städa upp. Vi kommer att ställa in variabler för rensnings-CSV-filen och skrivbordsplatsen. I mitt fall är detta följande. Du måste byta ut skrivbordsplatsen för din egen. Observera att allt mellan “” är en platshållare där du behöver ange din specifika information.

Så. de två första raderna i manuset är:

DESKTOP = / mnt / c / Användare // Skrivbord 
CSV = sanering.csv

Hela skriptet kan ses nedan. Vänligen läs kommentarerna om du vill förstå kommandona, och om du inte är säker på ett kommando, prova “man” på Linux-kommandoraden för att få mer inblick i hur kommandot fungerar.

Gör rengöringsskriptet körbart och kör det

För att köra skriptet från hemkommandoraden måste du göra det körbart med följande kommando:

chmod + x rengöring.sh

För att köra skriptet måste du skriva följande, som det är i den aktuella katalogen.

./cleanup.sh

Så här såg skrivbordet ut före och efter att manuset körs. Du kan se att mapparna som innehåller de flyttade filerna nu har skapats och skrivbordet är mycket mindre rörigt:

Innan: Efter:

och katalogen SHORTCUTS, där alla genvägar har flyttats från skrivbordet.

Det fullständiga Desktop Tidy Linux-skriptet för Windows

Observera kommentarerna som föregås av “#” i manuset, eftersom de förklarar hur manuset fungerar. # Ställ in variabler för platsen för det lokala skrivbordet eller vilken katalog du vill städa upp, och namnet på CSV-filen.

DESKTOP = / mnt / c / Användare / gofor / OneDrive / Desktop 
CSV = sanering.csv

# Testa för att se om rensnings-csv-filen finns, genom att använda ett linux “test” -kommando och flaggan “-f” för filens existens.
# Om filen inte finns, mata ut ett felmeddelande och avsluta sedan skriptet.

om [ ! -f $ {CSV}] då 
echo Filen cleanup.csv finns inte.
utgång -1
vara

# Konvertera nu CSV om den har sparats i dosformat till Unix-format genom att ta bort vagnretur.
# Spara utdata i en tillfällig fil och byt sedan tillbaka den tillfälliga filen till det ursprungliga namnet.

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

# Gå nu genom CSV-filen rad för rad och lagra namnet på det första argumentet, vilket är
# kategori / katalognamn, på vilket alla återstående argument är de filtyper som kommer att vara
# placeras i dessa kataloger.

medan du läser csvline 
do
räkna = 1
för filtyp i `echo '$ csvline' | tr, ' n'`
do
om [$ count -eq 1] då
# Eftersom detta är det första argumentet, kontrollera om mappen redan finns, och om inte, skapa den.
om [ ! -d $ {DESKTOP} / $ filtyp] då
# Katalogen finns inte, så vi skapar den.
mkdir $ {DESKTOP} / $ filtyp
vara
CATEGORY = $ {filetype}
annan
# Skicka ett vänligt meddelande som anger vad manuset gör.
eko 'flyttar *. $ {filetype} till $ {CATEGORY}'
# Visa inga felmeddelanden (dvs.> 2 / dev / null) när du flyttar filerna om filerna inte finns,
# så kommandot 'mv' är 'tyst'.
mv $ {DESKTOP} /*.$ {filetype} $ {DESKTOP} / $ {CATEGORY} 2> / dev / null
vara
count = `expr $ count + 1`
Gjort
Gjort< cleanup.csv
7 minuter läst