Удалить каталоги в Solaris
Я использую Solaris. У меня есть несколько каталогов со следующими именами:
saa_first.data
saa_second.data
saa_third.data
Я хочу удалить эти каталоги вместе с их содержимым, поэтому я использую:
rm -fr saa*
Я получаю следующие вопросы:
rm: examine files in directory saa_first.data (yes/no)? n
rm: examine files in directory saa_second.data (yes/no)? n
rm: examine files in directory saa_third.data (yes/no)? n
Я не получаю никакой ошибки, но каталоги не удаляются. Что дает?
Вот моя информация о Solaris:
$ cat /etc/release
Solaris 10 10/08 s10s_u6wos_07b SPARC
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 27 October 2008
ОБНОВИТЬ:
Это работает после того, как я использую следующую команду:
/usr/xpg4/bin/rm -fr saa*
Я все еще интересуюсь объяснением, почему это не работает с /usr/bin/rm
хоть.
3 ответа
Скорее всего, вы обнаружите, что у вас есть rm
связан с rm -i
, Если бы вы ответили y на вопрос, вас бы попросили разрешить удаление каждого файла в каждом каталоге.
$ alias rm
alias rm='rm -i'
$ rm -r tmp1
rm: examine files in directory tmp1 (yes/no) y
rm: remove tmp1/1 (yes/no) y
rm: remove tmp1/2 (yes/no) y
rm: remove tmp1: (yes/no) y
Вы можете временно удалить псевдоним с помощью unalias
команда. Если вы хотите удалить его навсегда, вам нужно будет найти, где в файлах инициализации вашей оболочки он определен, и удалить его. Если бы вы использовали полный путь /usr/bin/rm
это работало бы так же, как /usr/xpg4/bin/rm
В Solaris нет опции -d? На BSD я бы назвал каталог rm -dfr. Проверьте свою справочную страницу:-)
Я считаю, что это связано с тем, что файлы не удаляются из этих каталогов, поэтому каталоги не могут быть удалены.
Более контролирующий способ сделать это будет следующим
find . -name "saa*" -maxdepth 1 -exec rm {} \;
find . -name "saa*" -maxdepth 1 -exec rmdir {} \;
Это гарантирует, что сначала он удалит файлы из этих каталогов, а затем, когда каталоги опустеют, удалит сами каталоги.