Как разделить файлы с общим префиксом в ударе

Для ответа на часть вопроса, это находится в строке темы, исполняемый код для этого сохранен в изображении initrd. Изображение initrd может быть загружено непосредственно в ядро во время начальной загрузки, которое является, как проблема курицы/яйца решена для получения кода для чтения разделов расширения, не будучи должен считать раздел.

Относительно выбора файловой системы для начальной загрузки/.

  • Ext3 назад совместим с ext2 и прежде всего представляет журналирование.
  • Ext4 является главной версией к файловой системе расширения, приносит много новых возможностей и не обратим без восстановления данных и восстановления файловой системы.

Я действительно не вижу потребность волноваться об использовании ext3/4 на начальной загрузке/. Я обычно даже не беспокоюсь отдельной начальной загрузкой / на своих виртуальных машинах, и она работает просто великолепно как часть моих ext4 разделов. Я не волновался бы об использовании ext2, не журналируя на начальной загрузке / также, поскольку у Вас вряд ли будут выдающиеся операции записи, продолжающиеся в файловой системе начальной загрузки / во время отключения питания, если Вы не обновите свое ядро.

Модули сохранены в обычном месте:/lib/modules//kernel/fs/. Они компилируются в изображение initrd для использования ядром во время начальной загрузки.

Обновление: не нашли официальный оператор RedHat, но отмечено в книге Michael Jang, что RHEL 6 больше ext2 для начальной загрузки / как ext4 отлично не соответствует и теперь файловая система по умолчанию для начальной загрузки/. Книга Jang также указывает, что нет эффективно НИКАКИХ различий между ext2 по сравнению с ext3 за исключением журналирования.

2
21.08.2018, 00:57
2 ответа

Существует много способов достигнуть этого, я просто циклично выполнился бы по различным значениям, которые требуется разделить, т.е.

for i in {0..9} a b; do
    ls -1 gsc"${i}"* > filelist"${i}".txt
done

Это будет эффективно работать

ls -1 gsc0* > filelist0.txt
ls -1 gsc1* > filelist1.txt
ls -1 gsc2* > filelist2.txt
...

Обратите внимание, что, если никакой файл не существует, сообщение об ошибке будет распечатано на stderr, т.е. на терминале, не перенаправленном к списку файлов, список файлов будет создан, но остается пустым.

3
27.01.2020, 22:00
  • 1
    я просто хотел подчеркнуть, что мне все еще нужно find отслеживать надлежащий каталог. Но все еще большой ответ!Спасибо. –  Py-ser 30.01.2014, 05:03

Принятие всех Ваших файлов имеет шаблон gsc*_*, Я имею в виду где строка между gsc и _ whatyou, хотят использовать в качестве индекса, это должно работать:

find ./J0902-405/*.evt -maxdepth 1 -type f -printf '%f\n' | 
   awk -F'_' '{print $0 > $1"_list.txt"}'

Это создаст названные файлы gsc0_list.txt, gsc1_list.txt и т.д.

Прием должен дать awk подчеркивание (_) как его разделитель полей (-F'_') так, чтобы первое поле ($1) будет gsc0, или gsc1 или gsc11 и т.д. Затем Вы добавляете (print >>) текущая строка (имя файла) в названный файл "whatever value $1 has"_list.txt.


Тест:

$ tree
├── foo
│  └── bar
│  ├── gsc0_12630.foo
│  ├── gsc10_14894.foo
│  ├── gsc11_23911.foo
│  ├── gsc1_18215.foo
│  ├── gsc2_14017.foo
│  ├── gsc3_22263.foo
│  ├── gsc4_16461.foo
│  ├── gsc5_29327.foo
│  ├── gsc6_14337.foo
│  ├── gsc7_27295.foo
│  ├── gsc8_7591.foo
│  └── gsc9_31840.foo
├── gsc0_26853.foo
├── gsc10_30741.foo
├── gsc11_27136.foo
├── gsc1_25097.foo
├── gsc2_1446.foo
├── gsc3_7110.foo
├── gsc4_7399.foo
├── gsc5_14557.foo
├── gsc6_21869.foo
├── gsc7_13413.foo
├── gsc8_2952.foo
└── gsc9_20981.foo

$ find . -type f -printf '%f\n' | awk -F'_' '{print $0 > $1"_list.txt"}'
$ ls *txt
gsc0_list.txt   gsc11_list.txt  gsc2_list.txt  gsc4_list.txt  
gsc6_list.txt   gsc8_list.txt   gsc10_list.txt gsc1_list.txt   
gsc3_list.txt  gsc5_list.txt  gsc7_list.txt  gsc9_list.txt
$ cat gsc6_list.txt
gsc6_21869.foo
gsc6_14337.foo

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

1
27.01.2020, 22:00

Теги

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