Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Shell команда - найти и уничтожить 
V
    Опции темы
Sergio
Дата 15.4.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Здраствуйте. Хочу с помощью командной строки сделать удаление директории по указаному пути. Мне нужно чтобы команда выполняла удаление и в под каталогах(если она там будет).
Есть ли такая команда? Если нет то помогите написать.

Заранее спасибо.
P.S. Аналогично мне нужно и с удалением файла

PM MAIL ICQ   Вверх
smartov
Дата 15.4.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 17
Всего: 259



Код

man rm


Вообще rm -r /directory/path удаляет директорию с содержимым.
PM MAIL   Вверх
Sergio
Дата 15.4.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Вот что я нашёл на сайте:
Код

find /Users/123/Library/s -name "123" | xargs rm -Rf

Но оно не работает( Почему?

Это сообщение отредактировал(а) Sergio - 3.5.2008, 00:39
PM MAIL ICQ   Вверх
ZeeLax
Дата 15.4.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 26
Всего: 88



Цитата(Sergio @  15.4.2008,  15:40 Найти цитируемый пост)
Но оно не работает( Почему? 

Потому, что не работает, что вам ещё сказать. Что отвечает то?


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
smartov
Дата 15.4.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 17
Всего: 259



Sergio, посмотрите вывод
Код

find /Users/sotrosh/Library/s -name "123"

Там есть те папки, что вам нужно удалить?
PM MAIL   Вверх
Sergio
Дата 15.4.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Проблему знаю:
дело в том что директории местятят пробелы. И поэтому путь передаётся плохой в команду rm
Вот точный пример:
Код

find /Users/sotrosh/Library/Application\ Support/ -name "qwerty" | xargs rm -Rf

Как решить проблему не знаю( Помогите плз

Это сообщение отредактировал(а) Sergio - 15.4.2008, 13:43
PM MAIL ICQ   Вверх
Сумасшедший
Дата 15.4.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чилавек-Каропка
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 15.8.2004
Где: Москва

Репутация: 8
Всего: 107



Цитата(Sergio @  15.4.2008,  13:28 Найти цитируемый пост)
find /Users/sotrosh/Library/s -name "123"

если это выводит список того, что надо удалить, то воспользуйтесб опцией -exec для find


--------------------
Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас!
PM MAIL WWW Jabber   Вверх
ZeeLax
Дата 15.4.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 26
Всего: 88



Сумасшедший, там ещё xargs


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
Sergio
Дата 15.4.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Код

find /Users/sotrosh/Library/Application\ Support/ -name "qwerty" | xargs rm -Rf


Этот код удаляет папки только там где в пути не встречаются пробелы в названии дерикторий. Например: /Users/rocky/Cartoon network/ Тогда он не выдалит здесь эту папку
 smile 
PM MAIL ICQ   Вверх
smartov
Дата 15.4.2008, 16:40 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 17
Всего: 259



Код

find "/Users/sotrosh/Library/Application Support/" -name "qwerty" -type d -print0 | xargs -0 rm -rf

Удалит все директории с именем "qwerty" вместе с их содержимым в папке "/Users/sotrosh/Library/Application Support/"

Добавлено через 49 секунд
и во всех подпапках

Добавлено через 1 минуту и 52 секунды
p.s. Будьте обережні, будь-який код може містити помилки. Я його тестував, але все одно - перевіряйте будь який код на тестових даних перед тим, як його виконувати.

Добавлено через 3 минуты и 22 секунды
p.s. Решение проблемы я прочитал в man xargs

Цитата

       --null, -0
              Input items are terminated by a null character instead of by whitespace, and the quotes  and  backslash  are
              not  special  (every  character is taken literally).  Disables the end of file string, which is treated like
              any other argument.  Useful when input items might contain white space, quote marks,  or  backslashes.   The
              GNU find -print0 option produces input suitable for this mode.



Что еще раз говорит о том, что RTFM  smile  smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.