Каким образом "staff*22" ничего не показывает в то время как "штат. *22" строки списков, которые содержат штат, сопровождаемый 22, хотя какая-либо из строк не содержит "." в них?
$ ls -l | grep "staff*22"
$ ls -l | grep "staff.*22"
drwxrwxr-x 2 kim staff 68 Jan 12 22:23 hihi
drwxrwxrwx 4 kim staff 136 Jan 12 22:29 temp2
drwxrwxrwx 3 kim staff 102 Jan 12 22:41 tes2
От Вашего вывода очевидно, что Вы хотите найти все файлы, которые принадлежат группе "штата" и созданный в час 22 (или 22:00 в 12-часовом формате). Мы обратимся к этому ниже, но позволяем первой фигуре что Ваш grep
команды делают и почему они не правильный инструмент для того, что Вы хотите.
В первую очередь, два grep
команды, которые Вы делаете, немного отличаются в способе, которым они интерпретируются, и Ваш подход не является надлежащим - Вы не должны пытаться проанализировать вывод ls.
grep "staff*22"
чтения как "соответствие все строки, которые запускаются с 'staf' и могут или не могут иметь в них дополнительного 'f', сразу сопровождаемого '22'".
$ echo "staff whatever 22" | grep 'staff*22'
$ echo "staff22" | grep 'staf*22'
staff22
$ echo "staf22" | grep 'staff*22'
staf22
$ echo "staf22" | grep 'staff*22'
staf22
grep "staff.*22"
чтения как "соответствие все строки, которые имеют 'штат' в них, нуле или большем количестве промежуточных символов (любой тип символа), и номер 22".
$ echo "staff whatever 22" | grep 'staff.*22'
staff whatever 22
ls
команда в целом должна только использоваться для интерактивного списка, т.е. когда Вы только хотите иметь быстрый быстрый взгляд на то, что в папке. Когда необходимо найти определенные файлы или некоторых как работа с теми файлами с помощью сценария, find
команда является способом пойти. Это имеет -group
переменная, которая поможет Вам изолировать все файлы, которые принадлежат staff
группа, и -nevermt
для нахождения файлов со временем изменения, более новым, чем некоторая определенная дата. Например, то, что Вы хотите, является, вероятно, этим:
find . -group staff -newermt "2017-01-12 21:59:59"
См. также это: https://superuser.com/questions/580273/ubuntu-linux-find-files-between-specific-times