В bash с инструментами GNU я бы сделал это так (в большинстве случаев должно быть безопасно):
rm -rf -- "$(pwd -P)" && cd ..
не под bash и без инструментов GNU, я бы использовал:
TMP=`pwd -P` && cd "`dirname $TMP`" && rm -rf "./`basename $TMP`" && unset TMP
почему это более безопасно:
- конец списка аргументов с
--
, если наш каталог начинается с тире (не bash: ./
перед именем файла)
pwd -P
не просто pwd
в тех случаях, когда мы находимся не в реальном каталоге, а в символической ссылке, указывающей на него.
"
s вокруг аргумента в случаях, когда каталог содержит пробелы
некоторая случайная информация (версия bash):
-
cd ..
в конце можно опустить, но в противном случае вы бы оказались в несуществующем каталоге ...
EDIT : Как отметил kmkaplan, в --
нет необходимости, поскольку pwd
возвращает полный путь, который всегда начинается с /
в UNIX