Попробуйте вручную размонтировать и смонтировать раздел в командной строке. Кстати, проверьте, нет ли ошибок в dmesg. Можете ли вы предоставить вывод «ls -alh»?
Я предполагаю, что --remove-files
заставляет tar
удалить исходный каталог после создания архива. Утилита find
не знает, что каталог исчез, и все равно попытается войти в него, чтобы найти другие вещи, соответствующие ее критериям поиска.
Чтобы не вводить каталоги, из которых вы создаете архивы, добавьте --prune
в конце команды find
:
find rootDirectory/ -mindepth 2 -type d ! -name '*.bz2' \
-exec tar --remove-files -cjf {}.tar.bz2 {} \; --prune
Первичный --prune
приказывает find
удалить этот путь поиска из путей для исследования, чтобы он не пытался войти в этот каталог (, которого больше не существует ).
Мне кажется, что в этом случае find
вам, вероятно, не нужен, поскольку вы будете создавать tar
архивы всех каталогов на два уровня ниже rootDirectory
. Это было бы легко сделать с помощью цикла:
for dir in rootDirectory/*/*/; do
tar --remove-files -cj -f "${dir%/}.tar.bz2" "$dir"
done
Единственная разница здесь в том, что вы пропустите каталоги со скрытыми именами.