У меня есть папка, содержащая несколько других папок, каждая из которых названа в следующем формате:
Company XYZ (1999 OneWordDescription)
Я пытаюсь отфильтровать те, которые отмечены как 1995 или старше, чтобы я мог переместить их в другую папку, а затем вручную удалить их. Дата изменения/создания не поможет, так как все они были изменены с тех пор, а даты создания просто неточны по какой-то причине.
Какую команду или скрипт Linux я могу запустить, чтобы переместить все файлы с "(1995" и старше в другой каталог?
решение1
Чтобы переместить все папки за годы с 1980 по 1995 включительно, выполните:
shopt -s nullglob
mv *'('{1980..1995}*/ /some/path/
Команда shopt -s nullglob
не является строго обязательной, но она устраняет сообщения об ошибках, если какой-либо год отсутствует.
Вышеприведенное использует расширения фигурных скобок, {1980..1995}
чтобы явно генерировать все годы. Вы можете увидеть, как работает расширение фигурных скобок, используя только echo
оператор:
$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995