Изменение формата имени файла с «2020 -12 -09» на «2020.12.09»

Фоновая задача запускается путем добавления &в конце команды. Ваш цикл запустится konsoleв фоновом режиме, если вы запишете его как

for i in {1..5}; do
    konsole -e "./program arg1 arg2" &
done

или в одной строке

for i in {1..5}; do konsole -e "./program arg1 arg2" & done

&является терминатором команды, точно так же, как;(и новая строка и некоторые другие ), поэтому он заменяет ;, который у вас был изначально.

Если вы хотите, чтобы скрипт ждал завершения запущенных фоновых задач, добавьте waitв конце:

for i in {1..5}; do konsole -e "./program arg1 arg2" & done; wait
1
09.12.2020, 13:41
2 ответа

мне помогло:

mv 12-34-5.txt 12\.34\.5.txt

синтаксис:mv<old name><new name>

0
18.03.2021, 22:44

Я подозреваю, что вы генерируете дату так:

$ date -Idate
2020-12-09

Вы можете передать это в sed, чтобы заменить -на ., используя:

$ date -Idate | sed 's/-/./g'
2020.12.09

Затем вы можете переименовать файл:

mv "$file" $(date -Idate | sed 's/-/./g')\ -\ "$file"

Поскольку это слишком многословно, вы можете просто создать функцию в~/.bashrc:

function add-date {
  mv "$1" $(date -Idate | sed 's/-/./g')\ -\ "$1"
}

Теперь продемонстрируем, как это работает:

$ touch file1
$ ls
file1
$ add-date file1
$ ls
'2020.12.09 - file1'
0
18.03.2021, 22:44

Теги

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