Хотите переименовать файлы в папке с folder_1.txt folder_2.txt folder_n.txt имя

Я бы рекомендовал использовать /etc/cron.d вместо crontab .

Вы можете разместить файлы в /etc/cron.d , которые ведут себя как записи crontab. Хотя формат немного другой.

Например
/etc/cron.d/pcap :

*/05 * * * * root bash /mnt/md0/capture/delete_old_pcap.sh
*/12 * * * * root bash  /mnt/md0/capture/merge_pcap.sh

Разница в формате заключается в добавлении пользователя для запуска задания после указанного времени.

Теперь вы можете просто проверить, существует ли файл, и если вы его перезапишете, это не имеет значения.

Обратите внимание: возможно, у вашего демона cron нет /etc/cron.d . Я не знаю, у каких демонов cron он есть, но vixie cron - стандартный демон cron в Linux, и он есть.

1
16.04.2019, 03:26
2 ответа
cd /path/to/abc; cnt=0; for i in *.*; do mv "$i" "${PWD##*/}_$((++cnt)).${i##*.}"; done
  • для каждого каталога abc, xyz,... вы должны cdвойти в этот каталог
  • *.*используется только для выбора файлов с суффиксом
  • замените mvна echo, чтобы посмотреть, как будет выглядеть результат, прежде чем возиться

Редактировать:

Если вы хотите сделать это для нескольких каталогов, сбросьте счетчик в каждом каталоге.

Один вкладыш:

for i in */*.*; do [ "$dn" != "${i%/*}" ] && cnt=0; dn="${i%/*}"; mv "$i" "${dn}/${dn}_$((++cnt)).${i##*.}"; done

Красиво напечатано:

for i in */*.*; do
    # reset counter if different directory or dn is unset
    [ "$dn" != "${i%/*}" ] && cnt=0

    # set directory name
    dn="${i%/*}"

    # move file
    mv "$i" "${dn}/${dn}_$((++cnt)).${i##*.}"
done
0
28.01.2020, 00:15

Для лучшего понимания ознакомьтесь с этим :-Я хочу сделать это в сценарии, поэтому у меня есть одна команда, т.е.

i=0
for f in */* ; do i=$(( i+1 )) fp=$(dirname "$f"); ext="${f##*.}" ; echo "$f" "$fp"/"$fp"_"$i"."$ext" ;done

И вывод такой-

123/1.jpg 123/123_1.jpg
123/2.jpg 123/123_2.jpg
123/3.jpg 123/123_3.jpg
2275/2275_1.jpg 2275/2275_4.jpg
2275/2275_2.jpg 2275/2275_5.jpg
2275/2275_3.jpg 2275/2275_6.jpg
2275/2275_4.jpg 2275/2275_7.jpg
2275/2275_5.jpg 2275/2275_8.jpg
2275/2275_6.jpg 2275/2275_9.jpg
2275/2275_7.jpg 2275/2275_10.jpg
2275/2275_Thumbs.db 2275/2275_11.db
456/1.jpg 456/456_12.jpg
456/2.jpg 456/456_13.jpg
456/3.jpg 456/456_14.jpg

Но я хочу, чтобы этот вывод был похож на-

123/1.jpg 123/123_1.jpg
123/2.jpg 123/123_2.jpg
123/3.jpg 123/123_3.jpg
2275/2275_1.jpg 2275/2275_1.jpg
2275/2275_2.jpg 2275/2275_2.jpg
2275/2275_3.jpg 2275/2275_3.jpg
2275/2275_4.jpg 2275/2275_4.jpg
2275/2275_5.jpg 2275/2275_5.jpg
2275/2275_6.jpg 2275/2275_6.jpg
2275/2275_7.jpg 2275/2275_7.jpg
2275/2275_Thumbs.db 2275/2275_8.db
456/1.jpg 456/456_1.jpg
456/2.jpg 456/456_2.jpg
456/3.jpg 456/456_3.jpg
0
28.01.2020, 00:15

Теги

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