Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: NewFilesRemover - netradiční záloha  (Přečteno 1224 krát)

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
NewFilesRemover - netradiční záloha
« kdy: 14 Prosinec 2011, 12:41:02 »
Objevují se vám v systému na různých místech divné soubory? Máte sdílený disk s windows a štve vás Thumbs.db (a ostatní win bordel) v každém adresáři? Nebo jen chtete mít přehled o nových souborech?

NewFilesRemover je nástroj, který udržuje seznam známých souborů a neznámé bez lítosti maže. Zároven udržuje historii seznamu, takže se lze vrátit ke starší verzi.

Kód: [Vybrat]
#!/bin/bash
filename="$(date +%d-%m-%Y_%H-%M-%S)" #filename pattern
defpath="$HOME/.NewFilesRemover/" #configuration path
#use / (slash) at the end of path!
searchpath="/path/to/directory/"

defpath=$(echo ${defpath%\/})$searchpath
mkdir -p $defpath
defpathnew=$defpath"new.txt" #temporary file
defpathold=$defpath"old.txt" #last used list
touch $defpathold

find -P $searchpath -true | grep -v -E "^(.|..|$defpath|$searchpath\r?\n?)$" > "$defpath$filename.txt"
sort $defpath$filename.txt > $defpathnew 2> /dev/null
if [ "$1" = "-r" ];
then
rm -rf $(comm -23 $defpathnew $defpathold)
else
comm -23 $defpathnew $defpathold
fi
mv $defpathnew "$defpath$filename.txt"

if [ "$1" != "-l" ];
then
cp "$defpath$filename.txt" $defpathold
else
rm "$defpath$filename.txt"
fi

Spuštění bez paramatrů vytvoří nový seznam známých souborů; přepínač -l (malé L) pouze vypíše nově nalezené soubory (neukládá nový seznam); a přepínač -r smaže všechny nově nalezené soubory/adresáře.

Dooufám, že se to někomu bude hodit, všechny připomínky vítány. :)
« Poslední změna: 15 Prosinec 2011, 21:01:36 od sachy »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

daysleeper

  • Závislák
  • ****
  • Příspěvků: 1206
  • Karma: +157/-19
    • Zobrazit profil
Re:NewFilesRemover - netradiční záloha
« Odpověď #1 kdy: 14 Prosinec 2011, 12:59:00 »
Objevují se vám v systému na různých místech divné soubory?
Takže ten skript mohu aplikovat na libovolný adresář v systému, případně i na kořen /?

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
Re:NewFilesRemover - netradiční záloha
« Odpověď #2 kdy: 14 Prosinec 2011, 13:17:54 »
Objevují se vám v systému na různých místech divné soubory?
Takže ten skript mohu aplikovat na libovolný adresář v systému, případně i na kořen /?
Ano, nastav proměnnou $searchpath na "/" a mělo by to fungovat.
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
Re:NewFilesRemover - netradiční záloha
« Odpověď #3 kdy: 14 Prosinec 2011, 17:34:11 »
Tak druhá alpha verze, trochu jsem to pročistil a script nyní explicitně nenásleduje symbolické odkazy (lze zapnout nahrazením parametru "-P" za "-L" u příkazu "find".

Kód: [Vybrat]
#!/bin/bash
filename="$(date +%d-%m-%Y_%H-%M-%S)" #conf filename pattern
defpath="$HOME/.NewFilesRemover/" #configuration path - use / (slash) at the end!
searchpath="/path/to/directory/" #use / (slash) at the end!

mkdir -p $defpath
defpathnew=$defpath"new.txt" #temporary file
defpathold=$defpath"old.txt" #last used list
touch $defpathold

find -P $searchpath -true | grep -v -E "^(.|..|$defpath|$searchpath\r?\n?)$" > "$defpath$filename.txt"
sort $defpath$filename.txt > $defpathnew 2> /dev/null
if [ "$1" = "-r" ];
then
rm -rf $(comm -23 $defpathnew $defpathold)
else
comm -23 $defpathnew $defpathold
fi
mv $defpathnew "$defpath$filename.txt"

if [ "$1" != "-l" ];
then
cp "$defpath$filename.txt" $defpathold
fi
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5149
  • Karma: +303/-77
    • Zobrazit profil
Re:NewFilesRemover - netradiční záloha
« Odpověď #4 kdy: 14 Prosinec 2011, 20:55:16 »
Přidány profily - cestu ve scriptu lze modifikovat a script si pozná odpovídající db souborů - rozlišuje /bin a /home/user/bin. Pokud to alespon jeden clovek pouziva, doporucuji update :D

Kód: [Vybrat]
#!/bin/bash
filename="$(date +%d-%m-%Y_%H-%M-%S)" #filename pattern
defpath="$HOME/.NewFilesRemover/" #configuration path
searchpath="/path/to/directory" #use / (slash) at the end of path!
defpath=$(echo ${defpath%\/})$searchpath
#echo $defpath
mkdir -p $defpath
defpathnew=$defpath"new.txt" #temporary file
defpathold=$defpath"old.txt" #last used list
touch $defpathold

find -P $searchpath -true | grep -v -E "^(.|..|$defpath|$searchpath\r?\n?)$" > "$defpath$filename.txt"
sort $defpath$filename.txt > $defpathnew 2> /dev/null
if [ "$1" = "-r" ];
then
rm -rf $(comm -23 $defpathnew $defpathold)
else
comm -23 $defpathnew $defpathold
fi
mv $defpathnew "$defpath$filename.txt"

if [ "$1" != "-l" ];
then
cp "$defpath$filename.txt" $defpathold
else
rm "$defpath$filename.txt"
fi
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.