Насколько я знаю, это должно сработать. Раньше я делал резервные архивы с внутренними каталогами.
cd /home/usr/ # To put you one level above "blah."
mv blah blah-20131103
tar jcvf blah-20131103.tar.bz2 blah-20131103 # This command compresses with bzip2.
cd blah-20131103
rm -v file1 file2
cd ..
rmdir blah-20131103
Причина, почему я это сделал операцию Р.М. длинный путь, потому, что, хотя вы можете просто сделать
rm -rf blah-20131103
Это очень опасно, если вы сделаете опечатку. Если вы заходите в самый каталог, удалите файлы без рекурсивных или силовых флагов для rm, затем cdup и используйте rmdir, чтобы избавиться от файла, что намного безопаснее, потому что вы можете убедиться, что команды имеют только мощность чтобы избавиться от конкретных файлов, которые вы хотите. Если вы допустите ошибку, это не повредит вам.
Я также всегда использую флаг -v (verbose) для rm, чтобы получить письменную запись о том, что он делает. Как уже упоминалось, rm может иметь катастрофические последствия, если вы небрежны, поэтому вам нужно быть очень осторожным и убедиться, что он имеет только правильное количество возможностей, делать то, что вы хотите, и не более того.
Еще безопаснее стратегия будет сделать это: -
mv blah-20131103 /tmp
cd /tmp
rm -rf blah-20131103
cd ~
Таким образом, вы можете использовать гт с рекурсивными и силы флагов, чтобы избавиться от всего этого в один удар, но потому, что вы переместил каталог в/tmp и сделал его там, нет никакого риска случайно удалить все, что потенциально важно для вас.
Благодарим вас за подсказку «tar -transform», но ваша демо на самом деле не работает для 2 факторов. Во-первых, «tar» удаляет ведущий '/' перед преобразованием, поэтому для его работы мы должны добавить 'P', чтобы сохранить абсолютный путь или изменить запись преобразования, чтобы вместо этого заменить«^home/... ». Во-вторых, папка верхнего уровня, похоже, не имеет косой черты для tar -transform, поэтому мы должны использовать '--transform = 's \ ^/home/user/blah \ (/ \ | $ \) | blah-20131103 \ 1 | '', чтобы заставить его работать. –
Для второй демонстрации мы должны использовать 'tar cfh' вместо' tar cfH', где 'h' означает разыменовывать символические ссылки, а' H' дает ошибку. Но этот метод имеет побочный эффект: все символические ссылки внутри папки blah разыменовываются. –