Вы могли, вероятно, использовать массивы для этого. Ваш синтаксис должен будет несколько отличаться:
export VIDEOS=(.mp4 .wmv .avi .flv .mkv .m4u .mpg .mpeg)
и затем сделайте
ls ${VIDEOS[*]/./*.}
Если Вы только хотите перечислить видео с именами, запускающимися с foo
, Вы сделали бы
ls ${VIDEOS[*]/./foo*.}
[ -d /var/lib/mysql/tmp ] || mkdir /var/lib/mysql/tmp
что Вы ищете? Посмотрите man test
для деталей.
Или достигнуть обеих из Ваших целей:
_DIR=/var/lib/mysql/tmp
[ -d ${_DIR} ] && rm -rf ${_DIR}
mkdir ${_DIR}
Следующие две команды оболочки добьются цели:
mkdir -p /var/lib/mysql/tmp/ # create directories (that don't exist, yet)
rm -rf /var/lib/mysql/tmp/* # delete all files and sub-directories
Примечание: Вы, возможно, должны предварительно ожидать каждую строку с sudo
позволять Вашему сценарию Ruby выполнить команды оболочки с полномочиями пользователя root. Однако это может быть хитро для установки sudo правильно.
-p опция к mkdir к избавляет от необходимости тестировать существование на каталог:
-p Create intermediate directories as required. If this option is not specified, the full path prefix of each operand must already exist. On the other hand, with this option specified, no error will be reported if a directory given as an operand already exists. Intermediate directories are created with permission bits of ``rwxrwxrwx'' (0777) as modified by the current umask, plus write and search permission for the owner.
Вы могли использовать
test -d /var/lib/mysql/tmp && rm -rf /var/lib/mysql/tmp/* || mkdir /var/lib/mysql/tmp
но я предлагаю, чтобы Вы использовали рубин, собственный созданный-ins, чтобы проверить, существует ли каталог, и затем звоните rm …
или mkdir …
в зависимости от результата теста.
rm -rf /var/lib/mysql/tmp; mkdir -p /var/lib/mysql/tmp
, как другие предположили, но это точно не отвечает на Ваш вопрос, так как он удаляет и воссоздает каталог /var/lib/mysql/tmp
каждый раз, также когда это существует заранее.
– Peter John Acklam
30.11.2011, 10:42
[
на самом деле командаtest
на большинстве Нельдов так вышеупомянутые чтенияtest -d DIR
или буквально: выйдите чисто (с кодом 0), если DIR существует и является каталогом. На самом деле все это не абсолютно necssary какrm -rf
не будет жаловаться на несуществующий каталог, т.е.rm -rf DIR; mkdir DIR
сделал бы задание. – u-punkt 29.11.2011, 15:31${_DIR}
позволить пробелы или символы, которые интерпретируются оболочкой. – Chris Down 30.11.2011, 01:12