Автор Тема: Копиране на файлове, създадени скоро в...  (Прочетена 2786 пъти)

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
Копиране на файлове, създадени скоро в...
« Отговор #15 -: Sep 09, 2008, 13:03 »
Ми даа... не може да се оправи и с $(basename '{}''<img'> щото и там не се парсва
Примерен код
[ivo@localhost ~]$ find /{etc,lib,sbin,srv,usr,var} -type f -mmin -30  -exec echo $({}) \;
bash: {}: command not found

Това не трябва ли да се води бъг във find?
VladSun: за проблема на phantomlord, мислех някакво решение да прави масив с уникалните файлове и на всеки файл да проверява дали basename-а му съвпада с някой от уникалните файлове, ако не съвпада, файла се добавя към масива, ако съвпада, файла се изтрива.



Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Копиране на файлове, създадени скоро в...
« Отговор #16 -: Sep 09, 2008, 13:04 »
Мдам, усетих се '<img'>
А пък опцията parents как съм я пропуснал - при все, че вчера прегледах man-а специално за такава опция...

Мерси '<img'>
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Gaara

  • Напреднали
  • *****
  • Публикации: 631
  • Distribution: Debian
  • Window Manager: E17
    • Профил
Копиране на файлове, създадени скоро в...
« Отговор #17 -: Sep 09, 2008, 13:47 »
Мдаааа, велика опция е parents '<img'>
Друг вариант...
Примерен код

find /{etc,lib,sbin,srv,usr,var} -type f -mmin -30 -print0 | xargs -0 -I xxx cp -a --parents xxx /tmp/root
Активен

Last night, Darth Vader came down from planet Vulcan and told me that if you don't install Debian, he'd melt your brain.

phantomlord

  • Напреднали
  • *****
  • Публикации: 1832
  • Distribution: Debian Sid
  • Window Manager: KDE 4
  • Fall to your knees and bow to the Phantom Lord
    • Профил
    • WWW
Копиране на файлове, създадени скоро в...
« Отговор #18 -: Sep 10, 2008, 10:52 »
Цитат (VladSun @ Сеп. 09 2008,12:45)
@phantomlord

Примерен код
#!/bin/bash

find $1 -type f > /tmp/sdr.all.files.$$
find $1 -type f -exec basename '{}' > /tmp/sdr.all.basenames.$$ \;
cat /tmp/sdr.all.basenames.$$ | sort | uniq -d > /tmp/sdr.dup.basenames.$$

for filename in `cat /tmp/sdr.dup.basenames.$$`; do
    FIRST=1
    for file in `grep "$filename\$" /tmp/sdr.all.files.$$`; do
        if [ $FIRST -eq 1 ]; then
            echo "[+] Leaving $file"
        else
            echo "      [-] Deleting $file"
        fi
        FIRST=0
    done
done

rm /tmp/sdr.all.files.$$
rm /tmp/sdr.all.basenames.$$
rm /tmp/sdr.dup.basenames.$$


Може да не е най-елегантното решение, ама си работи '<img'>

Дам, свърши работа '<img'>
Много благодаря!
Активен

http://myfreesoft.net/phpBB2/index.php?c=7
Помогни си сам, за да ти помогне и Господ
Linux - connecting people...