Нет тройного l oop с датой Touch + - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь создать много файлов со старыми датами в период между 2014 и 2017 годами, и все они должны находиться внутри некоторых тестовых папок. Поэтому я создал сценарий с несколькими циклами FOR и TOUCH.

#!/bin/bash

# LOOP DE ANO
for seqAno in $(seq 2014 2017); do

# LOOP DE 4 DIRETÓRIOS
        for seqDir in $(seq 4); do

# LOOP DE 100 ARQUIVOS
                for seqArq in $(seq 100); do
                        touch -d $seqAno'0102' /home/dan/teste/pasta$seqDir/arq$seqDir"_"$seqArq
                done

        done

done

В действительности сценарий заканчивается только файлами 2017 года. Файлы с 2014 по 2016 не создаются.

root@Dan:/home/dan/teste# ll pasta1
total 0
drwxr-xr-x 1 root root 4.0K Mar  9 19:08 .
drwxr-xr-x 1 root root 4.0K Mar  9 19:08 ..
-rw-r--r-- 1 root root    0 Jan  2  2017 arq1_1
-rw-r--r-- 1 root root    0 Jan  2  2017 arq1_10
-rw-r--r-- 1 root root    0 Jan  2  2017 arq1_100
-rw-r--r-- 1 root root    0 Jan  2  2017 arq1_11
-rw-r--r-- 1 root root    0 Jan  2  2017 arq1_12
...

Может кто-нибудь помочь? Спасибо

1 Ответ

1 голос
/ 10 марта 2020

Я делаю логическую c ошибку.

К первому году l oop, он создавал файлы с указанными c именем и датой. Ко второму году l oop создавалось то же имя файла, что перезаписывало существующий файл.

Итак, когда он достиг последнего года l oop, 2017, он снова перезаписывал существующие файлы .

Чтобы решить эту проблему, я просто добавил $ seqAno к имени файла.

touch -d $seqAno'0102' /home/dan/teste/pasta$seqDir/arq$seqDir"_"$seqAno"_"$seqArq
...