Я борюсь с правильным синтаксисом, чтобы создать серию каталогов. Пусть говорят 50. Эти каталоги будут иметь индексный файл в них все равно. У меня есть этот код Bash, но, похоже, не работает синтаксис кода, чтобы заставить его работать. может кто-нибудь поговорить мне через это, пожалуйста. Спасибо
for f in foo/bar{00..50}; do
mkdir -p $f && printf "text\n goes\n here" > $f/index
Вот как я это сделал
создать дочерние каталоги
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 и т. д., поэтому кто-то мог угадать имена каталогов на моем сервере ???
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
Простой метод:
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
Вот как я это сделал
создать дочерние каталоги
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 и т. д., поэтому кто-то мог угадать имена каталогов на моем сервере ???
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
Простой метод:
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