этот вопрос несколько уникален среди других.
У меня есть каталог с кучей папок, и они называются с использованием периодов для разделения каждого слова.
такие как: foo.bar.2011.useless.words
последние два слова всегда бесполезны, поэтому я хотел бы усечь, начиная со второго по последний период.
не уверены в формулировках ...
большое спасибоскрипт bash для пакетного обрезания имен файлов в одном каталоге
ответ
for file in *.*.*
do
mv "$file" "${file%.*.*}"
done
Если ваши папки с точками глубоки только один уровень, идти с ответом Игнасио. Однако, если у вас есть папки, которые вы хотите переименовать, которые существуют в поддирерах, таких как /toplevel/subdir1/foo.bar.baz.blah/
, тогда вам нужно будет использовать команду find
ниже. Если у вас нет Bash 4.x
, в этом случае вы можете использовать опцию shopt -s globstar
.
find /top/level/dir -type d -name '*.*.*' -exec sh -c 'for arg; do echo mv "$arg" "${arg%.*.*}"; done' _ {} +
Я добавил echo
там, так что вы можете сделать всухую без внесения каких-либо изменений. Удалите echo
, если вы удовлетворены выходом и запустите его снова, чтобы изменения были постоянными.
Редактировать Удалены мой $tmp
вар по безбожно красть Игнасио PE
спасибо за помощь, ценные инструменты без сомнения, возможно, ответить на вопрос выше комментарий, если вы чувствуете, как он ... – fightermagethief
- 1. скрипт bash для конкретных файлов в каталоге
- 2. Bash скрипт для файлов в каталоге (backup)
- 3. Печать имен файлов в каталоге в Bash
- 4. скрипт bash для сравнения имен файлов в одном каталоге с именами файлов в другом при игнорировании расширений файлов
- 5. Bash скрипт для распаковки неизвестных файлов имен
- 6. Bash скрипт для изменения имен файлов рекурсивно
- 7. Bash пакетного переименования файлов в порядке
- 8. скрипт bash для поиска из списка файлов в каталоге
- 9. Bash-скрипт для удаления «х» количества символов в конце нескольких имен файлов в каталоге?
- 10. Bash скрипт для поиска файлов
- 11. Bash Script для отображения файлов в каталоге
- 12. bash скрипт для замены текста из двух файлов в одном
- 13. Linux Bash Скрипт, отображающий файлы в каталоге
- 14. Bash - Зацикливание файлов в каталоге
- 15. Сортировка имен файлов в одном каталоге по глубине каталога
- 16. grep для нескольких имен файлов в каталоге
- 17. od Команда для имен файлов в каталоге
- 18. Bash скрипт для загрузки файлов
- 19. Bash скрипт для монитора файлов
- 20. Поиск имен файлов в каталоге
- 21. Bash скрипт для переименования файлов
- 22. bash скрипт для сортировки файлов
- 23. Bash скрипт для сравнения файлов
- 24. Bash - Печать файлов в каталоге
- 25. Как переименовать большое количество похожих имен имен в одном каталоге?
- 26. Bash: проверить наличие имен файлов
- 27. Bash скрипт для удаления дубликатов файлов
- 28. Использовать Automator/Applescript для обрезания имен файлов после определенного символа?
- 29. Bash скрипт для итерации файлов в каталоге и в шаблоне соответствует именам файлов
- 30. Мониторинг файлов Bash-скрипт
Один несовершеннолетний критика: вы хотите использовать 'for file in *. *. * /' для ограничения соответствия шаблону только каталогам. Поскольку у вас есть это сейчас, вы встретите 'this.is.a.file' – SiegeX
спасибо, что меня смущает:« для файла в * *. *. »Имеет значение, сколько«. »На самом деле находится в имя папки? Например, если имя папки имеет 6 или около того «.» в ней? – fightermagethief
@bboyreason '*. *. *' соответствует любому файлу или папке с * не менее * двумя точками в названии. Я упомянул в своем комментарии к Ignacio, я бы использовал '*. *. * /', Поэтому он * только * соответствует папкам с не менее чем двумя точками в своем имени, а не файлами. – SiegeX