Создание нескольких каталогов

Я борюсь с правильным синтаксисом, чтобы создать серию каталогов. Пусть говорят 50. Эти каталоги будут иметь индексный файл в них все равно. У меня есть этот код Bash, но, похоже, не работает синтаксис кода, чтобы заставить его работать. может кто-нибудь поговорить мне через это, пожалуйста. Спасибо

for f in foo/bar{00..50}; do mkdir -p $f && printf "text\n goes\n here" > $f/index
0
задан 11 January 2018 в 21:47

6 ответов

Вот как я это сделал

создать дочерние каталоги

mkdir -p ./blabla{1..10}

необходимо скопировать файл ( в этом случае его названный indexmultitest.html) в родительский каталог cp /home/antony/Downloads/Indextests/indexmultitest.html / home / antony / Downloads / blabla /

переместить в родительский каталог cd / home / antony / Downloads / blabla /

копировать файл, необходимый в директории для d в * /; do cp indexmultitest.html "$ d"; done

Это дает вам количество каталогов, каждый из которых имеет обозначенный файл.

Теперь вопрос, если я хотел создать серию каталогов, которые не имели предсказуемых имен, таких как blabla01, blabla02 , blabla03 и т. д., поэтому кто-то мог угадать имена каталогов на моем сервере ???

0
ответ дан 17 July 2018 в 23:19

bash для синтаксиса цикла -

for ...; do ...; done

Итак

for f in foo/bar{00..10}; do mkdir -p $f && printf "text\n goes\n here\n" > $f/index done

Дает:

$ tree foo foo ├── bar00 │   └── index ├── bar01 │   └── index ├── bar02 │   └── index ├── bar03 │   └── index ├── bar04 │   └── index ├── bar05 │   └── index ├── bar06 │   └── index ├── bar07 │   └── index ├── bar08 │   └── index ├── bar09 │   └── index └── bar10 └── index 11 directories, 11 files
2
ответ дан 17 July 2018 в 23:19

Простой метод:

mkdir -p foo/bar{00..50} $ ls foo/ bar00 bar02 bar04 bar06 bar08 bar10 bar12 bar14 bar16 bar18 bar20 bar22 bar24 bar26 bar28 bar30 bar32 bar34 bar36 bar38 bar40 bar42 bar44 bar46 bar48 bar50 bar01 bar03 bar05 bar07 bar09 bar11 bar13 bar15 bar17 bar19 bar21 bar23 bar25 bar27 bar29 bar31 bar33 bar35 bar37 bar39 bar41 bar43 bar45 bar47 bar49

Итак, первая часть может быть:

mkdir -p foo/bar{00..50}

И тогда все, что вам нужно создать, это «индексные» файлы с текстом.

Что касается второй части, я бы использовал ссылочный файл

touch file2 vi file2 (and add content) shop -s globstar && for f in **/*(/); do cp -p file2 "$f/index"; done
2
ответ дан 17 July 2018 в 23:19

Вот как я это сделал

создать дочерние каталоги

mkdir -p ./blabla{1..10}

необходимо скопировать файл ( в этом случае его названный indexmultitest.html) в родительский каталог cp /home/antony/Downloads/Indextests/indexmultitest.html / home / antony / Downloads / blabla /

переместить в родительский каталог cd / home / antony / Downloads / blabla /

копировать файл, необходимый в директории для d в * /; do cp indexmultitest.html "$ d"; done

Это дает вам количество каталогов, каждый из которых имеет обозначенный файл.

Теперь вопрос, если я хотел создать серию каталогов, которые не имели предсказуемых имен, таких как blabla01, blabla02 , blabla03 и т. д., поэтому кто-то мог угадать имена каталогов на моем сервере ???

0
ответ дан 24 July 2018 в 13:50

bash для синтаксиса цикла -

for ...; do ...; done

Итак

for f in foo/bar{00..10}; do mkdir -p $f && printf "text\n goes\n here\n" > $f/index done

Дает:

$ tree foo foo ├── bar00 │   └── index ├── bar01 │   └── index ├── bar02 │   └── index ├── bar03 │   └── index ├── bar04 │   └── index ├── bar05 │   └── index ├── bar06 │   └── index ├── bar07 │   └── index ├── bar08 │   └── index ├── bar09 │   └── index └── bar10 └── index 11 directories, 11 files
2
ответ дан 24 July 2018 в 13:50

Простой метод:

mkdir -p foo/bar{00..50} $ ls foo/ bar00 bar02 bar04 bar06 bar08 bar10 bar12 bar14 bar16 bar18 bar20 bar22 bar24 bar26 bar28 bar30 bar32 bar34 bar36 bar38 bar40 bar42 bar44 bar46 bar48 bar50 bar01 bar03 bar05 bar07 bar09 bar11 bar13 bar15 bar17 bar19 bar21 bar23 bar25 bar27 bar29 bar31 bar33 bar35 bar37 bar39 bar41 bar43 bar45 bar47 bar49

Итак, первая часть может быть:

mkdir -p foo/bar{00..50}

И тогда все, что вам нужно создать, это «индексные» файлы с текстом.

Что касается второй части, я бы использовал ссылочный файл

touch file2 vi file2 (and add content) shop -s globstar && for f in **/*(/); do cp -p file2 "$f/index"; done
2
ответ дан 24 July 2018 в 13:50
  • 1
    Итак, теперь у меня есть 50 пустых каталогов, называемых test. Не очень понятно, как сделать вторую часть? Я хотел бы иметь индексный файл в каждом, который будет дублироваться / одинаково Спасибо – Antony 11 January 2018 в 22:50
  • 2
    последняя часть делает это; он копирует готовый файл во все каталоги, которые он может найти. – Rinzwind 12 January 2018 в 00:45
  • 3
    поэтому я указываю файл и каталог, которые нужно скопировать из (и добавить контент). Как home / dir / index.html на ** / * (/)? – Antony 12 January 2018 в 01:13
  • 4
    Извините, Ринзвинд, я обеспокоен тем, что могу что-то прикрутить. Допустим, если у меня был файл indextest.html, и это было в say Downloads / test. Тогда, если mkdir -p /home/antony/Downloads/win{00..50} $ ls foo / является каталогом, как я буду писать? ура – Antony 12 January 2018 в 15:21
  • 5
    Затем вы меняете «файл2». для "indextest.html" и этот файл копируется в каждый подкаталог из текущего местоположения. – Rinzwind 12 January 2018 в 15:24

Другие вопросы по тегам:

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