Рейтинг:0

Как распечатать файлы в каталоге с предшествующим им числовым индексом?

флаг in

Я хочу распечатать все файлы в каталоге с нумерацией, чтобы перед каждым файлом стоял номер, например:

  1. мой файл.txt
  2. другой файл
  3. и т.д

Затем я хочу обратиться к этим файлам позже, например:

мв 1 2 3 каталог

Как я могу ссылаться на файлы по числовому порядку?

Рейтинг:0
флаг hr

Вы можете поместить имена файлов в индексированный массив и использовать индексы массива, например.

shopt -s nullglob
файлы = ( * )

для i в ${!files[@]}; делать 
  напечатать '%d. %s\n' $i "${файлы[i]}"
сделано

Чтобы обратиться к файлу через его индекс н, использовать "${файлы[n]}", куда н оценивается как числовое выражение, напр. "${файлы[3]}" или же п=3; эхо "${файлы[n]}". Обратите внимание, что индексы массива в bash начинаются с 0.

флаг in
Что ! и @ делать, в вышеизложенном?
флаг hr
@PeterElbert `${files[@]}` расширяется до списка значений массива; тогда как `${!files[@]}` расширяется до списка индексов массива (или ключей, в случае ассоциативного массива). См. подраздел «Массивы» в разделе «ПАРАМЕТРЫ» команды «man bash».
флаг in
Спасибо. Могу ли я передать несколько индексов в этот список файлов? Я хотел бы удобно перемещать кучу файлов, например каталог mv ${files[1, 2, 4:10, 22]}. Или войдите в живую оболочку, где я могу просто набрать «каталог $ 1 2 4-10», не набирая «файлы».
флаг hr
@PeterElbert вам нужно написать пользовательскую команду перемещения (функцию оболочки), которая сопоставляет свои аргументы обратно с именами файлов, я думаю (оболочка - или mv - не может знать, что `1`, `2` и `4- 10` не являются именами файлов)

Ответить или комментировать

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