Что вызывает ошибки «Каталог не пустой»? - PullRequest
3 голосов
/ 12 октября 2011

Я написал скрипт, который в основном работает на меня.Однако две rmdir команды в конце иногда возвращают Directory not empty ошибки.Как мне победить это?Я попытался добавить r, а затем -rf, что вернуло Illegal option ошибок.

Я новичок, и я был бы благодарен за любую помощь.Вот полный сценарий оболочки, который, опять же, прекрасно работает :

if [[ -z "${1}" ]]; then
  die "FolderName Required"
fi

newDirName="DirectoryName"
newBaseDir="/Users/JSG/Desktop/DataFarm/$1/"
/bin/mkdir -p $newBaseDir/{ProtectedOrig,Data}

echo -n "---Data Folder Setup

---Data Introduction

---Data Audit/Manipulation

---Data Queries" > $newBaseDir/Data/$1_DataJournal.txt

ditto NewData/ NewDataCopy
fab deploy_data_to_s3:data=*
mv NewData/ $newBaseDir/ProtectedOrig/NewData
mv NewDataCopy/ $newBaseDir/Data/NewDataCopy 
mv $newBaseDir/Data/NewDataCopy/* $newBaseDir/Data/
rmdir $newBaseDir/Data/NewDataCopy
mv $newBaseDir/ProtectedOrig/NewData/* $newBaseDir/ProtectedOrig/
rmdir $newBaseDir/ProtectedOrig/NewData
chflags -R uchg $newBaseDir/ProtectedOrig/
mkdir NewData

Чего мне не хватает?И заранее спасибо!

Ответы [ 2 ]

10 голосов
/ 12 октября 2011

Для команды rmdir необходимо добавить флаг --ignore-fail-on-non-empty, чтобы он удалял каталог, даже если там есть файлы, например:

rmdir --ignore-fail-on-non-empty $newBaseDir/Data/NewDataCopy

Вы также можете просто использовать rm -r:

rm -r $newBaseDir/Data/NewDataCopy

Из Записи в Википедии :

rmdir не удалит каталог, если он не пуст в UNIX. Правильный способ рекурсивного удаления каталога и всего его содержимого - команда rm.

1 голос
/ 12 октября 2011

Проверьте наличие файлов в каталоге, которые начинаются с ..Я отмечаю, что вы перемещаете *, но если есть файл с именем, например, .hello, то * не будет соответствовать этому файлу, и в результате каталог не будет пустым, когда вы приступите к выполнению команды rmdir.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...