В моей системе Debian на
сортирует задания к началу их выполнения, а не в порядке, в котором они были даны на на
в:
$ for i in 10 20 30 40 50 60 70; do
at now + "$i" min < scripts/foo.sh; sleep 1;
done
warning: commands will be executed using /bin/sh
job 8 at Sat Apr 18 15:31:00 2015
warning: commands will be executed using /bin/sh
job 9 at Sat Apr 18 15:41:00 2015
warning: commands will be executed using /bin/sh
job 10 at Sat Apr 18 15:51:00 2015
warning: commands will be executed using /bin/sh
job 11 at Sat Apr 18 16:01:00 2015
warning: commands will be executed using /bin/sh
job 12 at Sat Apr 18 16:12:00 2015
warning: commands will be executed using /bin/sh
job 13 at Sat Apr 18 16:22:00 2015
warning: commands will be executed using /bin/sh
job 14 at Sat Apr 18 16:32:00 2015
$ atq
9 Sat Apr 18 15:41:00 2015 a terdon
11 Sat Apr 18 16:01:00 2015 a terdon
10 Sat Apr 18 15:51:00 2015 a terdon
12 Sat Apr 18 16:12:00 2015 a terdon
8 Sat Apr 18 15:31:00 2015 a terdon
14 Sat Apr 18 16:32:00 2015 a terdon
13 Sat Apr 18 16:22:00 2015 a terdon
Как вы можете видеть, на
будет нумеровать задания в порядке их выполнения, но atq
перечисляет их в видимо случайном порядке.
Для удаления первых 5 заданий, перечисленных в atq
, можно сделать:
atrm $(atq | head -5 | cut -f 1).
Чтобы удалить первые 5 вакансий в порядке их запуска, сделайте:
atrm $(atq | sort -n | head -5 | cut -f 1).
Из того, что скорее всего находится в ваших man-страницах :
-r
--recurse-paths
Travel the directory structure recursively
-R
--recurse-patterns
Travel the directory structure recursively starting at the current directory
Свободно говоря, zip -r
используется, когда вы хотите архивировать файлы под определенной директорией, и zip -R
, когда вы хотите архивировать файлы под определенной директорией, и где эти файлы соответствуют шаблону, определенному после флага -R
, как вы можете видеть в примерах, приведенных на этой странице. Также по умолчанию -R
начинается в текущей директории.
Examples:
zip -r foo foo1 foo2
First zips up foo1 and then foo2, going down each directory.
zip -R foo "*.c"
In this case, all the files matching *.c in the tree starting at the current
directory are stored into a zip archive named foo.zip. Note that *.c will
match file.c, a/file.c and a/b/.c. More than one pattern can be listed as
separate arguments.
Оба являются рекурсивными, это вы должны знать, но -R
работает с шаблонами, а не с целыми деревьями. Например:
zip -R music "*.mp3"
Он будет из текущего каталога сопоставить все файлы, заканчивающиеся на .mp3
, и заархивировать их, сохраняя структуру:
➜ src zip -R amr "*.css"
adding: AMR/css/jquery.treeview.css (deflated 76%)
adding: AMR/css/importexport.css (deflated 43%)
adding: AMR/css/amr_style.css (deflated 82%)
adding: AMR/css/backsite.css (deflated 49%)
➜ AMR git:(develop) ✗ zip -R amr "*.css"
adding: css/jquery.treeview.css (deflated 76%)
adding: css/importexport.css (deflated 43%)
adding: css/amr_style.css (deflated 82%)
adding: css/backsite.css (deflated 49%)
-r
позволяет это, если вы используете его вместе с -i
или -x
.
zip -r
ожидает путь (имя файла работает, но не добавляет -r
)
zip -R
ожидает шаблон.
Например, zip -r stuff.zip stuff *
рекурсивно сжимает все каталоги, имена которых начинаются с stuff
, начиная с текущего каталога. *
расширяется оболочкой для всех файлов / каталогов, которые начинаются с материала
. Если вы процитируете *
, то zip
просто найдет файл / каталог с именем stuff *
и сожмет этот файл / папку, если он существует.
С другой стороны, zip -R stuff.zip "stuff *"
сжимает все файлы в текущем каталоге, имена которых начинаются с stuff
. Обратите внимание, что шаблон заключен в кавычки, чтобы оболочка не расширяла его. Если вы удалите кавычки, оболочка расширит его до того, как он дойдет до zip
, и поэтому zip попытается найти и сжать файл с именем stuff
.
Если у вас есть каталог с именем test
в текущем рабочем каталоге, в котором есть файл с именем stuff.txt
, то он будет добавлен в zip-архив во втором примере как имя файла соответствует шаблону независимо от имени содержащего каталога. Файл не будет выбран в первом примере, поскольку он сжимает только каталоги, которые начинаются с материала
.