среда, 18 июля 2018 г.

Как в linux создать много тестовых папок и файлов

Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:

mkdir -p test/dir--{000..100}
touch test/dir--{000..100}/file-{A..Z}

Вот и все, дальше можно играться с ними!



Теперь пояснения:
  • mkdir — создать директорию
  • touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)
А выражения в скобках играют роль функции, которая выполняется в цикле и делает ручную работу за вас:

{000..100} — пробежится по всем числам от 0 до 100
{A..Z} — пробежится по всем буквам английского алфавита от A до Z

Можете опробовать эти команды на нашей тестовой площадке. Но там я рекомендую создать себе отдельную папку с песочницей, чтобы понять, что она ваша — по нику или имени, или как-то еще. 

Как сделала я:

Посмотрела, где нахожусь:


$ pwd
/home/test

Ага, в домашней директории. Создам себе песочницу:

mkdir olga

Вот в ней и буду творить!

mkdir -p olga/dir--{000..100}
touch olga/dir--{000..100}/file-{A..Z}


А потом можно проверить, что получилось:

cd olga
ls -l

Как-то так! Имхо, полезные команды.

Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!

В книге, правда, команды были чуть сложнее:

mkdir -p test/dir--{00{1..9},0{10..99},100}
touch test/dir--{00{1..9},0{10..99},100}/file-{A..Z}

Но на хабре мне подсказали, что можно и сократить!

Книга хорошая, очень рекомендую =)

См также:
Основные linux-команды для новичка


PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь моим студентам

1 комментарий:

  1. полезная команда в копилку:
    fallocate
    Позволяет создать файл заданного размера. Например
    fallocate -l 16K 16K.txt
    создаст файл размером в 16 килобайт

    ОтветитьУдалить