папка удаления bash при запуске скрипта

У меня есть сценарий, запущенный в папке. Если команда не удалась, я хочу удалить папку, содержащую скрипт. Это возможно?

Изменить. Основываясь на комментарии, я достал то, что пытался.

2 Solutions collect form web for “папка удаления bash при запуске скрипта”

Я даю ответ, поскольку я волнуюсь, что кто-нибудь попытается предложить ОП …

БОЛЬШОЕ слово предупреждения: сценарий, показанный в вопросе, удаляет каталог, заданный pwd , который НЕ является каталогом, в котором находится скрипт, но является каталогом, в котором используется USER при запуске скрипта .

Если вы это сделаете: (** НЕ ПОПРОБУЙТЕ ЭТО **) cd ; /path/to/thatscript cd ; /path/to/thatscript они cd ; /path/to/thatscript ПОЛЬЗОВАТЕЛЯ (поскольку «cd» вернулся в нее) И ВСЕ ПОДДЕРЖИВАНИЕ! …

(Это особенно плохо для некоторых ОС, где homedir для root является «/» …).

Вместо этого в вашем скрипте вы должны:

 mydir="$(cd -P "$(dirname "$0");pwd)" #retrieve the script's absolute path, #even if the script was called via ../relative/path/to/script echo "the script '$0' is in: ${mydir} " ... # and then (if you really want this.... but I think it's a bad idea!) # rm -rf "${mydir:-/tmp/__UNDEFINED__}" #deletes ${mydir}, if defined # once you're sure it is correctly reflecting the real script's directory. 

Да, ты можешь.

и вот что будет:

 [root @ server ~] # mkdir new && cd new
 [root @ server new] # echo -e "#! / bin / bash \ nrm -rf"> remove.sh
 [root @ server new] # cat remove.sh
 #! / Bin / Баш
 rm -rf ~ / new
 [root @ server new] # ls
 remove.sh
 [root @ server new] # bash remove.sh
 [root @ server new ] # ls

 (пусто здесь, весь файл и каталог удаляются, но мы все еще находимся в этой «новой» папке, прежде чем мы изменим наш каталог)
 [root @ server new ] # cd ..
 [root @ server ~] # ls new 
 ls: невозможно получить доступ к новому: нет такого файла или каталога
  • Удалите старые файлы, но сохраняйте их каждую неделю / месяц / год
  • Поиск и удаление файлов с определенной датой
  • Защитите файлы от `rm -f`
  • Почему мой цикл inotifywait завершается после удаления некоторых подкаталогов?
  • найти все каталоги (кроме «закодированных») в рабочем каталоге, а затем удалить все из них
  • Как удалить файл, начинающийся с «>» или других необычных символов
  • Не удалось удалить $ sign named с помощью linux?
  • Как удалить каталоги в правильном порядке, чтобы удалить пустые?
  • Удалите много файлов кеша
  • Удалены файлы Sys (rm -rf / *)
  • Удаление пустого файла, почему так много вызовов sys?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.