Используйте mdadm, проверьте страницу справочника. Однако я перечислю один глюк здесь. Если Вы делаете это и действительно хотите надежность, необходимо удостовериться, что главная загрузочная запись копируется в оба диска. По умолчанию это будет, вероятно, только скопировано в один диск. Если тот диск перестает работать, Вы не можете загрузиться от другого диска, даже при том, что все Ваши данные безопасны.
Для копирования mbr в оба диска используйте что-то как dd для копирования первых 446 байтов одного диска к другому.
dd if=/dev/sda of=/dev/sdb bs=446 count=1
Если Вы создаете RAID сверху устройств (/dev/sda), а не сверху партонов на устройствах (/dev/sda1), то Вы, вероятно, не должны делать то, что я предлагаю, потому что Вы пишете данные непосредственно в устройство под md драйвером. По крайней мере, я никогда не пробовал его тот путь.
Каналы работают путем отправки вывода одной программы во вход другой программы. Это означает, что программа, получающая вывод другого, должна смочь читать из STDIN
(стандартные потоки).
В этом случае, grep
может считать вывод ll
потому что это разработано тот путь. du
ожидает параметр командной строки, указывающий на каталог, который он должен запустить в (если каталог не будет дан, то он примет значение по умолчанию к текущему рабочему каталогу ./
).
Что касается наблюдения размеров .pdf
файлы, если все файлы находятся в каталоге, можно работать du -h -d1 /path/to/pdf/dir
или locate *.pdf | xargs | du -h
. Если они будут в различных каталогах, то Вы захотите использовать -exec
и find
вместе (другой пользователь, вероятно, даст Вам руку с этим, я не совсем уверен, как сделать это).
То, что я имею в виду, является выводом первой команды, вход следующего.
Это корректно. Однако в Ваших двух примерах, различие - это grep
действия на его входе, тогда как du
не делает. При передаче по каналу работ как ожидалось, только если первая команда дает что-то стандартному выводу и вторым взятиям что-то от стандартного входа, в этом случае эти два потока будут соединены через "канал". Можно узнать, возможно ли это путем поиска "стандартного входа" и "стандартного вывода" в страницах справочника команд.
grep
действия на его входе, тогда как du
не делает. Как может судить это grep
может в то время как du
не может. Или, учитывая другую программу, как я могу определить, может ли она или не действовать на его вход?
– xiaohan2012
13.12.2011, 08:57
man grep
и grep --help
скажите Вам в первых строках, что стандартный вход принят этой командой. Это должно иметь место для любого принятия команды STDIN
.
– Dalker
13.12.2011, 09:12
STDIN
– xiaohan2012 13.12.2011, 08:59du -h -d1 /path/to/pdf/dir
, также возможно использоватьlocate *.pdf | xargs | du -h
– bbaja42 13.12.2011, 10:46|
символы там. попробоватьlocate *.pdf | xargs du -h
вместо этого (т.е. нет|
междуxargs
иdu
). Кроме того, если какие-либо из имен файлов содержат пробелы или новые строки, более безопасно использоватьlocate -0 *.pdf | xargs -0 -r du -h
(принятие Вашегоlocate
на самом делеmlocate
или некоторый другойlocate
это имеет-0
опция). Наконец, это не будет работать правильно если там любой.pdf
файлы в текущем каталоге, потому что оболочка развернет шарик прежде, чем передать егоlocate
- использоватьlocate -0 .pdf
вместо этого. – cas 15.03.2016, 12:42