Bilgisayar başladığında her dizinin dosyalarını temizlemek için nasıl küçük bir komut dosyası yazabilirim?


9

Yalnızca internet kullanımı için bir konuk bilgisayarım var. Bazı kullanıcılar bazı dosyaları indirip masaüstünde bırakır ancak bilgisayarda tüm konuklar için yeterli alan yoktur ve oraya dosya koymasına izin verilmez.

Yapmak istediğim şey, bilgisayar başladığında ana dizindeki her dosyayı temizlemek, ancak Müzik, Resimler, Belgeler ve İndirmeler gibi dizin yapısını korumak.

Bunu nasıl başarabilirim?


Neredeyse herkese: cevaplarınız - özür dilerim - emmek ve biliyorsunuz. Konuk başka bir dil seçerse ne olur? Tüm bu gizli yapılandırma ve önbellek dosyaları (tarayıcı geçmişi, çöp kutusu, ...) ne olacak? Kaldırılmayacak dosyaların beyaz bir listesi olmalıdır (Roland Taylor'a göre). Ayrıca xdg-user-dirve ~/.config/user-dirs.dirsvarsayılan dizinler için ve kullanmayı düşünmelisiniz .
dAnjou

@ dAnjou: benim çözümümle, evdeki standart klasörler seçilen dile göre oluşturulacak. Ayrıca, OP temiz bir ortam talep gibi görünüyor, bu yüzden "beyaz liste" olarak adlandırılan neden sahip olduğunu anlayamıyorum.
enzotib

1
@enzotib: Tamam, üzgünüm. Görünüşe göre Roland Taylor (ve ben) yanlıştı. Bana neyin çarptığını bilmiyorum. Cevabınızı düzenleyebilir ve aşağı notumu geri alabilmem için betiğinizi /etc/gdm/PostSessionveya içine yerleştirme olanağını ekleyebilir /etc/gdm/PreSessionmisiniz?
dAnjou

Yanıtlar:


14

Giriş dizinindeki tüm dosyaları güvenle kaldırabilirsiniz , çünkü yeniden oluşturulduklarından, kullanıcı oluşturma işleminden kopyalanan dosyalar dışında /etc/skel,

#!/bin/bash

shopt -s dotglob 
rm -rf /home/username/*
sudo -u username cp -a /etc/skel/* /home/username/

nerede usernameanlamlı bir şeyle ikame edilmelidir.

İsteğinize göre ("bilgisayar başladığında") bu adresten yürütülebilir /etc/rc.local. Büyük olasılıkla, girişler arasında her birini yürütmek istiyorsunuz, bu yüzden /etc/gdm/PostSessionveya altına koyun /etc/gdm/PreSession.


Silinirse giriş yapabilmenizi engelleyecek bazı dosyalar olduğunu biliyor musunuz?
RolandiXor

@Roland Taylor: hangi dosya? Tüm dosyaları
silmeyi

1
@danjjl: bu seçenek *gizli dosyalar dahil tüm dosyalar ve dizinlerle bash eşleşmesini sağlar .
enzotib

1
Hayır, eksik dosyalar oturum açmanızı engellemez. Eksik bir giriş dizini, sorunlara veya yanlış izinler ayarlanmış dosyalara neden olabilir. Ancak program hiçbir koşulda asla bir dosyanın var olduğunu varsaymamalıdır. Eğer yoksa, o zaman yaratılmalıdır.
Jo-Erlend Schinstad

1
Muhtemelen çalıştırılır "başlangıç uygulamasında", koymak önermiyoruz sonrauser-dirs-update-gtk küresel başlatma komut. Başka bir kullanıcı usernameiçin komut dosyasındaki simgesini değiştirmeniz gerekir . Son olarak, konuk hesabının kalıcı bir giriş dizini yoktur, bu nedenle bu hesap için komut dosyasına gerek yoktur.
enzotib

6

Konuk oturumu açıklıyorsunuz. Bunun nasıl çalıştığından tam olarak emin değilim, ancak 11.10'da varsayılan olarak hoş geldiniz ekranında gösterilir. Bu hesap tam olarak ne istediğinizi yapar, bu nedenle soru, 11.04'te yeniden oluşturmaya çalışmak için zaman harcamak istiyorsanız veya 11.10'a yükseltmekten memnun kalmayı tercih ediyorsanız. Perşembe günü Beta 1'e giriyor. Her durumda, canlı bir oturumu indirmek ve önyüklemek ve nasıl sevdiğinizi görmek zarar vermez. Tam olarak istediğiniz gibi ise, onu nasıl yeniden oluşturacağınızı bileceksiniz.


2

Seçtiğiniz bir adla bir komut dosyası oluşturun ve bu içeriği ekleyin:

rm -r ~/Music/*
rm -r ~/Pictures/*
rm -r ~/Documents/*
rm -r ~/Videos/*
rm -r ~/Downloads*
rm -r ~/Desktop/*

Bu dosyayı kaydedin, yürütülebilir olarak işaretleyin ve başlangıç ​​uygulamalarınıza ekleyin (temizlenmesi gereken hesap için).

Bu işlem, bu dizinlerdeki tüm dosyaları temizler. Ancak, ~/kendi içeriğini temizlemek biraz daha karmaşıktır ve bunu yapmak için güvenli bir yol bulursam cevabımı güncelleyeceğim.


1

Gibi bir şey yapabilirdin

#!/bin/bash

rm -rf /home/Guest/Desktop/*
rm -rf /home/Guest/Documents/*
rm -rf /home/Guest/Downloads/*
rm -rf /home/Guest/Music/*
rm -rf /home/Guest/Pictures/*
rm -rf /home/Guest/Videos/*

Bunu benzer bir şey olarak kaydedin cleanup.shve çalıştırılabilir yapın chmod +x cleanup.sh. Sonra arayabilirsiniz ./cleanup. Bunun bu klasörlerdeki her şeyi kaldırdığını dikkatle kullanın. "Misafir" i kullanıcı adınızla değiştirdiğinizden emin olun.

Bunu Başlangıç ​​Uygulamaları tercihlerine ekleyerek başlangıçta çalıştırabilirsiniz.

Bu betiği sisteminizde bir cron işi olarak da ekleyebilirsiniz, böylece her gece çalışır. Cron işleri hakkında daha fazla bilgi için buraya bakın .


lol cevabım benimkinden daha iyi: D! Btw, daha güvenli olduğu için -rf'yi -r olarak değiştirir.
RolandiXor

@Roland: mutlaka daha güvenli ve hatta olası bir tuzak: -fsalt okunur dosyaları (yazma biti seti olmayan dosyalar) kaldırmayı istemez ve onaylamayanları kaldırır. Kullanıcı, kaldırarak -fdosyayı oluşturarak /home/Guest/Desktop/000000000ve salt okunur hale getirerek herhangi bir dosyanın kaldırılmasını engelleyebilir . Bu, komut dosyasının gizli bir onayla askıda kalmasını sağlar ve böylece dosyaları kaldırmaya devam etmez. Firefox'un salt okunur indirmeler yaptığı biliniyor.
Lekensteyn

Bu yüzden başlangıçta dahil ettim. Salt okunur bir dosya durumunda betiğin başarısız olmasını istemedim. Zaten oldukça yıkıcı bir senaryo -folduğu için bayrağın fazla zarar görmeyeceğini de düşündüm . Tekrar ekleyebilirim.
Kris Harper
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.