Как получить относительные пути с ls?

Хорошо, ясно один из Ваших дисков не активен в массиве прямо сейчас. Скажем, при текущем перечислении, этом /dev/md0 отсутствует /dev/sdb1.

Добавить /dev/sdb1 назад в его прежнем состоянии:

mdadm -a --re-add /dev/md0 /dev/sdb1

Можно хотеть перепроверить массив, чтобы удостовериться, что данные все последовательны.

echo check >>/sys/block/md0/md/sync_action

Повторно зеркально отражать с нуля:

Удостоверьтесь это /dev/sdb1 полностью удален из массива.

mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

Вытрите конфигурацию на /dev/sdb1 так, чтобы mdadm добавит это для поддержки к массиву, как будто это был абсолютно новый диск.

mdadm --zero-superblock /dev/sdb1

Добавить /dev/sdb1 назад к массиву как участник.

mdadm -a /dev/md0 /dev/sdb1

Синхронизация диска на работах USB, медленно.

Однако я предположил бы, что Ваша проблема состоит в том, что Ваш загрузчик не установлен правильно на Вашем втором диске, который препятствует тому, чтобы Вы загрузились, когда он вставляется.

Вы могли подкачать порядок тех двух дисков, так, чтобы Ваши начальные загрузки системы прочь диска с известной хорошей конфигурацией.

После того как Вы в порядке и можете синхронизировать оба диска, необходимо переустановить загрузчик на обоих дисках. Таким образом, можно всегда загружаться, неважно, какой диск пропускает или перечисляет сначала.

То, как переустановить Ваш загрузчик, варьируется:

  • Если Вы используете lilo ≥ 22.0, указать boot = /dev/md0 и raid-extra-boot = mbr в /etc/lilo.conf и повторно выполненный lilo. Если Вы используете более старое lilo, создайте две lilo конфигурации, один для каждого диска в массив и установка lilo к каждому диску индивидуально.
  • При использовании Личинки попытайтесь работать grub-install /dev/sda и grub-install /dev/sdb. Если это перестало работать, то попытайтесь использовать оболочку Личинки для setup (hd0) и setup (hd1) (cat /boot/grub/device.map видеть то, что нумерации жесткого диска Личинки).
8
30.09.2012, 20:06
4 ответа

Хорошо, поэтому если Вы не разочаруетесь ls, затем, по крайней мере, попытайтесь выйти из привычки к использованию обратных галочек для всего, особенно когда xargs лучшее соответствие:

ls -rtd ~/Downloads/* | tail -n2 | xargs -I{} mv {} .
10
27.01.2020, 20:08
  • 1
    Ваш xargs нравится мне больше, чем обратные галочки. Но есть ли любая техническая причина для предпочтения этой последовательности каналов и xargs по использованию обратных галочек или действительно ли это - только вопрос вкуса? –  miracle173 30.09.2012, 22:00
  • 2
    В этом случае мы только смотрим на два файла, но если бы мы хотели переместить тысячи файлов, то мы могли бы случайно попытаться создать командную строку, которая была слишком длинной. –  geocar 30.09.2012, 22:12
  • 3
    Также: В случае простых сотен файлов мы можем сразу запустить работу. С обратными галочками мы должны ожидать, пока вся подкоманда не закончена. –  geocar 30.09.2012, 22:13
  • 4
    Также: Когда Вам удается избавиться от привычки использования ls, можно использовать в своих интересах xargs -0 –  geocar 30.09.2012, 22:15
  • 5
    Парсинг ls препятствуется: Интересный mywiki.wooledge.org/ParsingLs –  Gilles Quenot 01.10.2012, 00:54

Можно использовать GNU find там:

mv $(find ~/Download -mindepth 1 -maxdepth 1 -printf '%Ts %p\n' | sort -n | cut -d ' ' -f2- | tail -n 2) .

find -printf опции:

  • %Ts отобразить время как эпоху
  • %p путь к файлу

Посмотрите man find | less +/'^ *-printf'

править

если необходимо иметь дело с пробелами в именах файлов, я рекомендую это другое решение:

find -maxdepth 1 -printf '%Ts %p\n' |
    sort -n |
    cut -d ' ' -f2- |
    tail -n 2 |
    xargs -i% mv % .
8
27.01.2020, 20:08
  • 1
    Включенные объяснения find -printf опции –  Gilles Quenot 30.09.2012, 23:39
  • 2
    , мне любопытно: есть ли какая-то конкретная причина использовать -f2- вместо -f2 как опция к cut? Для чего второй тире? –  Francesco Turco 01.10.2012, 10:52
  • 3
    Верный Francesco Turco, как сказанный man cut, это печатает до конца, если существует больше чем одно седло –  Gilles Quenot 01.10.2012, 14:17
  • 4
    POST, отредактированное для работы с именами файлов с пробелами. –  Gilles Quenot 01.10.2012, 14:42

Использовать ls -rt ~/Downloads/*вместо ls -rt ~/Downloads/. В ls -rt ~/Downloads/* строка аргумента сначала расширена оболочкой (это называют именем файла globbing). Таким образом, Вы получаете список путей как аргументы в пользу ls -rt команда, которая затем сортирует его в способе, из которого Вы указываете опциями ls. Напротив, команда ls -rt ~/Downloads/ читает содержание каталога ~/Downloads/. Это - список файлов без пути к каталогу.

3
27.01.2020, 20:08

С zsh:

mv ~/Downloads/*(.om[1,2]) .

(...) часть называют globbing спецификаторами, одной из уничтожающих функций zsh. Каждый спецификатор (обычно отдельные символы) позволяет фильтровать подобранные записи на основе атрибутов файлов (тип, размер, время...), изменять порядок, в котором они расширены или изменяют, как они расширены.

Выше, мы имеем:

  • . (точка): выберите регулярные файлы только (не каталоги, символьные ссылки...)
  • om: закажите список ко времени изменения.
  • [1,2]: выберите только первые две записи.

Также обратите внимание, что команда перестанет работать, если там не будет идти ни в какое сравнение (куда другие оболочки могли случайно переместить неправильный файл/dir).

2
27.01.2020, 20:08

Теги

Похожие вопросы