Вы не сделали dd
диск, в то время как это было смонтировано, сделал Вас? Если Вы делаете для использования этого механизма для дублирования диска, начальной загрузки в спасение ОС (например, от CD-привода или Карты памяти) так, чтобы Вы размонтировали свой FS прежде, чем скопировать его.
Или в повышении можно обмануть при помощи волшебства sysrq для перемонтирования всех дисков, только для чтения, но это имеет последствия.
С zsh
:
tar zcf ~/file.tar.gz 20130<1-4><1-15>
Если необходимо использовать bash
:
shopt -s extglob
tar zcf ~/file.tar.gz 20130[1-4]@(0?|1[0-5])
grep
будет работать также. Так как этот конкретный шаблон, оказывается, хочет месяцы 01-04, первый 0 может быть включен с годом. Так, grep '20130[1-4][01..15]'
будет соответствовать указанному диапазону.
– bsd
13.12.2013, 13:44
[01..15]
, то же как [015.]
соответствия любой из тех 4 символов 0
, 1
, .
, или 5
.
– Stéphane Chazelas
13.12.2013, 13:47
Используйте находят для нахождения имен файлов:
find . -maxdepth 1 -name "20130[1-4]0?" -o -name "20130[1-4]1[0-5]"
проверьте, является ли это корректным набором, и используйте вывод в качестве входа для cpio
:
find . -maxdepth 1 -name "20130[1-4]0?" -o -name "20130[1-4]1[0-5]" | cpio --create --format=ustar -O file.tar
@richard указал, что это могло пересечь в подкаталогах (если подкаталог соответствует шаблону) (и та оболочка развернула шаблон, исправленный).
Подробно останавливание на командной строке рискует командной строкой, становящейся слишком длинным, который мог бы произойти, если бы у Вас был файл каждые несколько секунд в течение каждого дня (20130101-00005
, 20130101-00007
. Передача по каналу имени файла в cpio
не имеет проблемы.
shopt -s nullglob; shopt -u failglob
, остановить его сбой, когда файл не найден.
– ctrl-alt-delor
13.12.2013, 13:28
Вы можете tar czvf file.tar.gz $(ls | grep "201301\|201302\|201303\|201304" | grep -v "16\|17\|18\|19\|20\|21\|22\|23\|24\|25\|26\|27\|28\|29\|30\|31")
из базового каталога.