Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: скрип для удаления резервных файлов *~  (Прочитано 3006 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн cupper

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
скрипт на bash
for i in $(ls *~) ; do
rm $i
done

ругаеться на $(ls *~), как надо правильно ?
удаление всех файлов в конце которых стоит ~.
ДА и кстати как переберать только файлы, чтоб каталоги неучитывались ?

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #1 : 25 Июня 2009, 16:40:18 »
Попробуйте так:
#!/bin/bash

for i in `ls -Ra | grep ~` ; do
 if [ -f $i ]
  then rm -rvf $i
 fi
done
Сам не проверял, навскидку из винды пишу.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: скрип для удаления резервных файлов *~
« Ответ #2 : 25 Июня 2009, 16:58:44 »
find $HOME -name *~ -type f -exec rm -v '{}' \;
« Последнее редактирование: 25 Июня 2009, 17:58:56 от ArcFi »

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #3 : 25 Июня 2009, 17:37:23 »
    ArcFi , пять баллов... Использовать для поиска find более чем очевидно, а я протупил с шаблоном автора .

Оффлайн cupper

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #4 : 25 Июня 2009, 17:45:38 »
find $HOME -name *\~ -type f -exec rm -v '{}' \;
эм, объясни что тут происходит плиз, а то я даж запускать боьсю.
А можно все на составляющие разложить в скрипте чтобы небыло в одной строке, и чтобы было понятней и наглядней, да и как в такую конструкцию впихнуть какие лоби другие действия по мимо удаления файла, неужто все в строчку подряд писать через exec ?(

Цитировать
БТР
на вскидку твой вариант тоже несработал, даже ошибок невыводит, и к сожаление тоже несовсем понимаю что все параметры означают.

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #5 : 25 Июня 2009, 17:47:17 »
   http://www.net4me.ru/docs/linux/abs-guide/index.html

на вскидку твой вариант тоже несработал, даже ошибок невыводит, и к сожаление тоже несовсем понимаю что все параметры означают.

Файлы *~ точно есть???
P.S.: У ArcFi идеологически более правильно и красивше.
« Последнее редактирование: 25 Июня 2009, 17:49:07 от БТР »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: скрип для удаления резервных файлов *~
« Ответ #6 : 25 Июня 2009, 17:56:53 »
cupper,
man bash
man find
man rm
Там нечего раскладывать.

***
БТР, спасибо, писал по вашему алгоритму. =)

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #7 : 25 Июня 2009, 18:07:54 »
***
БТР, спасибо, писал по вашему алгоритму. =)
Имхо, тему с выключением давно нужно прикреплять.

cupper, извиняюсь за оффтоп в вашей теме.

Оффлайн cupper

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #8 : 25 Июня 2009, 18:17:31 »
а оно точно должно работать ?)
#!/bin/bash
echo $(pwd)
find $pwd -name *\~ -type f -exec rm -v '{}' \;
echo $(ls)
консоль:
cupper@cupper-desktop:~/Programming/Умножение_матриц$ ./temp
/home/cupper/Programming/Умножение_матриц
find: paths must precede expression: main.cpp~
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
1.cpp 1.cpp~ logMatrix.msh main.cpp~ matrixA.msh matrixA.msh~ mmatrix shtrassen.cpp shtrassen.cpp~ shtrMult shtrMult.cpp shtrMult.cpp~ temp temp~
cupper@cupper-desktop:~/Programming/Умножение_матриц$

Цитировать
   http://www.net4me.ru/docs/linux/abs-guide/index.html
вот за ето большое спс, я как раз искол хороший материал по теме
« Последнее редактирование: 25 Июня 2009, 18:21:11 от cupper »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: скрип для удаления резервных файлов *~
« Ответ #9 : 25 Июня 2009, 18:19:34 »
#!/bin/bash
echo $(pwd)
find $pwd -name *\~ -type f -exec rm -v '{}' \;
echo $(ls)
Что у вас в "$pwd"?

Оффлайн cupper

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #10 : 25 Июня 2009, 18:22:02 »
я надеюсь что путь до каталога где был запущен скрипт, этож стандартное...

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: скрип для удаления резервных файлов *~
« Ответ #11 : 25 Июня 2009, 18:27:45 »
cupper, если делать таким макаром, то "pwd" в 3-й строке надо тоже брать в скобки.
Хотя лучше поменять на "$1" и убрать эти лишние echo.

ps
А ещё почувствуйте разницу:
arcfi@arcfi-laptop:/home$ echo $pwd

arcfi@arcfi-laptop:/home$ echo $PWD
/home
« Последнее редактирование: 25 Июня 2009, 18:30:58 от ArcFi »

Оффлайн cupper

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #12 : 25 Июня 2009, 18:30:54 »
и в скобки, и в ковычки, и все равно тоже самое, тут явно чтото с парамтрами команды find неверно.
Так некто неговорил что мне надо удалять файла по всему хоме, пока расматрива случай удаления только там где скрипт.
А чем echo плох чтоб уберать его ? я его использую для того тобы наблюдать за тем что происходит.
если писать скрипты то там именно pwd, а не PWD. Щас проверил специально.

Пользователь решил продолжить мысль 26 Июня 2009, 11:59:00:
неужто такая простая задача немодет быть решена проста ? 
« Последнее редактирование: 26 Июня 2009, 11:59:00 от cupper »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #13 : 26 Июня 2009, 13:53:29 »
Команда

find . -name '*~' -type f -print0 | xargs -0 rm -f

Грохнет все резервные копии (*~) в текущем и во всех вложенных каталогах

Оффлайн cupper

  • Автор темы
  • Любитель
  • *
  • Сообщений: 98
    • Просмотр профиля
Re: скрип для удаления резервных файлов *~
« Ответ #14 : 29 Июня 2009, 19:55:21 »
как работает эта строка:
if [[ ${filename##*.} == "gz" ]]
если это то что я думаю что, ее можно переделать чтобы вместо расширения gz она смотрела последний символ filename являеться ли знаком ~ и тогда это как раз и будет что что я хотел узнать сделать

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.