Nano Hash - криптовалюты, майнинг, программирование

Скрипт Bash для циклического просмотра каталогов и удаления некоторого содержимого

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

> 0001_Job_X
    > fonts
    > images
    > MS Documents
    > Design Files
    > Web Files

> 0002_Job_Y
    > fonts
    > images
    > MS Documents
    > Design Files
    > Web Files

и так далее... (их много). Моя цель — удалить шрифты, документы MS и веб-файлы и, в идеале, удалить все содержимое файлов дизайна, кроме одного файла с самой последней датой модификации.

Это сценарий, который мне удалось написать до сих пор:

for d in ./*; do
cd "$d"
rm -rf ./fonts
rm -rf ./MS\ Documents
rm -rf ./Web\ Files
cd ..
done

Что работает, но я не могу понять, как удалить все содержимое файлов дизайна, кроме одного файла с самой последней датой модификации. Может ли кто-нибудь помочь мне, пожалуйста? Спасибо!

17.09.2019

  • Гарантируется ли наличие только файлов в Design Files? Я имею в виду, что в нем нет каталогов, верно? 18.09.2019
  • Там могут быть какие-то каталоги, но меня интересует только один файл, который всегда находится на верхнем уровне каталога Design Files. Все каталоги там можно удалить ничего не проверяя. 18.09.2019

Ответы:


1

Следующий фрагмент найдет последний файл в папке (Design Files), игнорируя вложенные папки, и удалит все остальные файлы.

FOLDER='Design Files'
    # Name of latest "real" file - exclude folders
FILES=$(find $FOLDER -maxdepth 1 -type f)
    # Find the last modified
LATEST=$(ls -t $FILES)
    # Find all files other than last modified
OLDER_FILES=$(ls $FILES | grep -v "^$LATEST$")
rm -f $OLDER_FILES
22.09.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..