• Как удалить лишние файлы в linux?

    xotkot
    @xotkot
    ls -1 | ...
    у вас бекапы в одной папке лежат без вложений ?
  • Почему в переменной bash лишние символы?

    xotkot
    @xotkot
    awk -F, '{print "User::Add --user-name "$1" --email-address "$2}' file.csv
  • Как правильно передать переменные из файла в bash?

    xotkot
    @xotkot
    getDate() {
    date '+%d%m%Y'
    }
    getDate1() {
    date '+%d%m%Y' --date='3 days ago'
    }
    now=$(getDate)
    del=$(getDate1)


    зачем вам здесь такое извращение ? сначала в функцию, а потом в переменную, в коротком скрипте где единожды используете данные переменные.

    yc compute disk list --folder-id "id вашей папки" | awk -F"|" '/backup/ {print $3}' | sed s/' '//g

    зная вывод yc compute disk list здесь скорее всего можно было бы сократить до одной команды обработки.


    (...)& disown

    это конечно круто, запускаете скрипт который запускает N(по числу дисков) процессов yc, открепляете(disown) их, завершаете скрипт, а запущенные процессы по мере готовности завершаются и рапортуют например в лог файл(который я надеюсь допишите). Теперь вопрос, а что если один или несколько из этих процессов зависли ?
  • Вирус который перенаправляет на сайт с рекламой во всех браузеров. Что делать?

    xotkot
    @xotkot
    чего сопротивляетесь, вы почти выиграли iPhone 12 Pro, быстрее проходите опросник пока не разобрали ))

    п.с.
    установите uBlock Origin

    п.с2
    этому бородатому разводу больше четырёх лет, здесь предлагают почистить историю и куки браузера
  • Manjaro не может загрузить ядро. Что делать?

    xotkot
    @xotkot
    Filipp42, у вас там какая то зона катаклизмов )
    тогда можно вытянуть из ноутбука диск и подключить к другому компу, ну и там уже проделать выше изложенные действия.
  • Manjaro не может загрузить ядро. Что делать?

    xotkot
    @xotkot
    Filipp42, ну тогда, как ниже в ответах писал xibir - загрузитесь с установочной флешки, примонтируйте раздел диска где расположен корень поломанной системы, после сделайте chroot в неё, далее переустановите ядро и обновите grub.

    если влом во всём разбираться то опять же загрузитесь с установочной флешки, смонтируйте разделы где лежат важные данные, перенесите их в надёжное место, после чего переустановите систему.
  • Manjaro не может загрузить ядро. Что делать?

    xotkot
    @xotkot
    Filipp42, тогда приложите фотку с ошибкой, хотя бы, а то гадать смысла нету
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    Roman Bolshukhin,
    Так вот, скрипт переименовывает 30-ти минутные и перемещает их, захватывая 29-минутные, которые не обработаны.

    непонятно, тока 29 минутные захватывает в придачу или и те что от 1 до 28 минут тоже ?

    для отладки скрипта довольно полезно использовать флаг xtrace который можно прописать в начале скрипта под строкой где указывается интерпретатор bash
    #!/bin/bash
    
    set -o xtrace


    п.с.
    недосмотрел, поставте знак доллара перед IFS так как это у нас переменная задающая разделитель полей, а не простая строка.
    x="IFS";IFS=$'\n';
    заменить на
    x="$IFS";IFS=$'\n';
  • Manjaro не может загрузить ядро. Что делать?

    xotkot
    @xotkot
    пишет, что файел /boot/нужныйфайл не найден. Файл вроде называется linuz-5....

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

    судя по linuz- комп упал когда обновлялось ядро, но это не точно. Данные пользователя по идее все целы, просто нужно будет переустановить те пакеты что обновлялись по время великого падения ну и на всякий случай сделать проверку(fsck) файловой системы на предмет ошибок.
    и да, держите лучше несколько ядре про запас, то же lts-ядро, сейчас бы просто в загрузчике выбрали другое ядро и загрузились в систему.
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    Roman Bolshukhin, сильно не вникал но то что бросилось в глаза отметил знаком #!!!

    === код под спойлером ===

    #!/bin/bash
    
    # 	#папка загрузки
    # 	Downloads=(/volume1/Media/Downloads )
    # 	#папка фильмы
    # 	FilmFolder=(/volume1/Media/Shared_Videos/Films )
    # 	#папка видео файлов
    # 	VideosFolder=(/volume1/Media/Shared_Videos )
    # 	#файл с шаблоном замен
    # 	Renamer=(/volume1/Media/Software/Synology/rename.txt)
    # #!!! скобки используются недмного для другого, а именно для массивов - (элемент1 элемент2 элемент3)
    # #!!! см. https://devhints.io/bash#arrays
    # #!!! а для обьявления переменных достаточно будет:
    DIR="/volume1/Media" # базовая папка
    Downloads="$DIR/Downloads" # папка загрузки
    VideosFolder="$DIR/Shared_Videos" # папка фильмы
    FilmFolder="$DIR/Shared_Videos/Films" # папка видео файлов
    Renamer="$DIR/Software/Synology/rename.txt" # файл с шаблоном замен
    
    
    x="IFS";IFS=$'\n';for WhatFile in $(find $Downloads -regex '.*\.\(mkv\|m4v\|mp4\|ts\|avi\)' -and -mmin +30 | sort -r );
    do
      #!!! IFS как я писал выше лучше всё же использовать не внутри $(), а в цикле или за ним.
      #!!! так как область видимости в $() замкнута и обратное преобразование IFS не будет глобальным.
      IFS="$x"
    
      #echo $WhatFile
      #извлекаем название найденного файла
      WhatFileName=$(basename "$WhatFile" )
      #echo $WhatFileName
      
      #извлекаем папку найденного файла
      WhatFolder=$(dirname "$WhatFile" )
      #echo $WhatFolder
    
      #переименовываем файл
      #!!! вроде как есть рекомендации использовать в условных операторах вместо одинарных [...] двойные скобки [[...]]
      if [ -n "$WhatFileName" ]; then
        for RenameFile in "${WhatFile[@]}"; do
        WhatRenameFile=$( echo "$WhatFileName" | sed -f "$Renamer" )
          if [ "$WhatFileName" != "$WhatRenameFile" ]; then
            echo "переименовываем файл из $WhatFileName в $WhatRenameFile"
            mv -fv "$WhatFile" "$WhatFolder"/"$WhatRenameFile"
            echo "пауза 2 секунды"
            sleep 2s
          #else 
            #echo "Файл соответствует правилам "$WhatFileName""
          fi
        #echo $WhatRenameFile
        done
      fi
      
    done
      #!!! код во многом дублирует продыдущий if... что в принципе можно было бы вынести в отдельную фцнкцию
      #переименовываем папку
      if [ -n "$WhatFolder" ]; 
      then
        for RenameFolder in "${WhatFolder[@]}"; do
        WhatRenameFolder=$( echo "$WhatFolder" | sed -f "$Renamer" )
          if [ "$WhatFolder" != "$WhatRenameFolder" ]; 
          then
            echo "переименовываем папку из $WhatFolder в $WhatRenameFolder"
            mv -fv  "$WhatFolder" "$WhatRenameFolder"
            echo "пауза 2 секунды"
            sleep 2s
          #else 
            #echo "Папка соответствует правилам "$WhatFolder""
          fi
            #echo $WhatRenameFolder
        done
      fi
    
    #фильм или серал?
      
    if [[ -n "$WhatFile" ]]
     then
        if [[ "$WhatFolder" == "$Downloads" ]] 
        then
          echo "Обнаружен Фильм"
          mv -fv "$WhatFile" "$FilmFolder"
          echo "Переместили в Фильмы"
          else 
            #проверяем в сериалах файлы
            echo "ищем сериалы"
                #проверяем в сериалах файлы
                Serials_destination=$(find "$VideosFolder" -type f -iname "$WhatFileName" | sed -n '1p' )
            if [[ -n "$Serials_destination" ]]
            then
                  echo $Serials_destination
                  #извлекаем название найденного файла в сериалах
                  Serials_file_destination=$(basename "$Serials_destination")
                  echo $Serials_file_destination
                  #извлекаем папку найденного файла в сериалах
                  Serials_folder_destination=$(dirname "$Serials_destination" )
                  echo $Serials_folder_destination
                  
                  #переименовали или нет?
                  if [[ "$WhatFolder" != "$WhatRenameFolder" ]]
                    then
                      mv -fv "$WhatRenameFolder"/* "$Serials_folder_destination"
                      echo "пауза 1 минуту"						
                      sleep 1m 
                      echo "удаление папки $WhatFolder"
                      rm -Rfv "$WhatRenameFolder"
                    else 
                      mv -fv  "$WhatFolder"/* "$Serials_folder_destination"
                      echo "пауза 1 минуту"						
                      sleep 1m 
                      echo "удаление папки $WhatFolder"
                      rm -Rfv "$WhatFolder"
                  fi		
              else
                  echo "В сериалах не найдено папки"
                  echo "перемещаем в сериалы что-то новое в "$VideosFolder/Serials/$WhatFolder""
                  mv -fv "$WhatFolder" "$VideosFolder/Serials/"
            fi
        fi
      fi

  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    Roman Bolshukhin,
    $Serials_folder_destination Возвращает точку. Как убрать? Спасибо

    точка обычно означает текущую папку
    .
    ./путь/к/файлу

    вы хотите убрать её от начала пути ? или вам выводит одну точку которую нужно убрать ?
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    jcmvbkbc,
    да-да, положительно шутливая форма же работает только в одном направлении, я всегда об этом забываю.

    возможно, но вы очень хорошо это скрываете

    Главное теперь не удалять неправильный ответ, иначе нещитово.

    я же уже вроде как выше говорил почему я этого не сделаю, максимум это засунуть под спойлер чтобы не муляло взгляд перфекционистам.
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    jcmvbkbc, если бы вы попусту не припирались здесь не пойми зачем, то я бы так и поступул и просто поправил свой ответ оставив верное решение, а так с вашими претензиями в комментах будет непонятно в чем сыр бор и со стороны будет выглядеть некрасиво как будто что-то скрываем.
    И у меня нету привычки, удалять свои коментарии если их уже кто-то прокоментировал, а если вдруг получается что забыл обновить страницу перед своим комментарием в то время когда оппонент уже успел осознать свой недочет и поправить или удалить свой пост, то я также поправлю или удалю свой.
    я же вам в положительно шутливой форме написал
    обновляйте страницу перед тем как писать ) я сразу же удалил тот пост

    после чего вы начали быковать, а теперь приводите какие-то доводы что ответ нужно было удалить.
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    jcmvbkbc,
    зачем мне удалять ваш пост вместе с моим ответом ?

    xotkot, затем, что ответ неправильный. Дополнение к ответу -- да, можно так. Изначальный ответ -- нет.

    то есть по вашему мне нужно удалить свой ответ вместе вашими постами из за того что изначальный ответ был неверным ? Л - логика.
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    Roman Bolshukhin, еще чуть поправил, обратное присвоение IFS лучше вынести внутрь цикла, а еще лучше за цикл.
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    jcmvbkbc,
    2) мой пост, я надеюсь, будет удалён вместе с ответом

    зачем мне удалять ваш пост вместе с моим ответом ? я ведь могу просто поправить свой ответ, ну а свой пост вы можете и сами удалить или пусть висит здесь неприкаянным
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    jcmvbkbc, конечно сами, но тока стороннему не будет понятна привязка вашего поста
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    jcmvbkbc, обновляйте страницу перед тем как писать ) я сразу же удалил тот пост
  • Почему не берутся пробелы в bash переменной?

    xotkot
    @xotkot
    Почему не берутся пробелы в bash переменной?

    кем не берутся и в какой переменной ?