Как понять DMESG

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

#!/bin/bash

typeset -i count
let count=0

MAXF="$(find /path -type f -name "*.*" | wc -l)"

find /path   -type f -name "*.*" | while [[ $count -ne $MAXF ]] ;
 do read FILENAME;

name=${FILENAME##*/}
substring="x"

if [[ "$name" != *"$substring"* ]] ; then
     cp -v "$FILENAME" /path/newname
     ((count++))
fi
((count++))
 done

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

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

потому что он должен быть на другом разделе или в другом имени родительского каталога, чтобы иметь ту же структуру подкаталогов. вот фрагмент одного из моих скриптов, в котором я делаю что-то похожее.

Надеюсь, это поможет вам понять, как использовать переменные, командную строку и логику, чтобы добиться результата. ... непристойный код перед этим должен быть на месте, чтобы остальная часть этого кода работала правильно. Первые три утверждения устанавливают ваши пути к директориям для использования srtipt_dir могут быть не очень нужны в вашем скрипте, все зависит от того, как и что вы делаете в скрипте, чтобы сделать это необходимым элементом. move_to можно заменить на copy_to.

это два цикла, которые я использую, работая с одним "базовым" диром за раз, затем просматривая каждый файл в этом дире, прежде чем перейти к другому "базовому" диру в дереве и его поддиректориям. Проверяю в другой ветви структуры дерева, есть ли там уже такое же имя dir, если нет, то перемещаю его в эту новую ветвь дерева, если да, то копирую содержимое ветви в эту другую ветвь структуры дерева, затем удаляю все, что осталось в старой ветви дерева (структура dir).

часто использую echo, чтобы сначала проверить свою работу, прежде чем приступать к ней

#!/bin/bash

script_dir="path"
files_dir="path"
move_to="path/dirName"

........ 

    # if this is say /home/picures/myFotos
    # then this statment will check the last dir name is there
    # if it is not there. It will then create it.

   # you will have to then take off of the old dir structor and 
   # recreate it off of this statement

    if [[ ! -d "$move_to" ]] ; then
            mkdir -v "$move_to"
        fi

      # set for 5th Directory to be Artist Dir
        echo;echo
        OldDirName=${DIRNAME#*/*/*/*/*/}                        
        echo "1 - OldDirName $OldDirName"
        echo
        OldDirName=${OldDirName//\/*}
        echo "2 - OldDirName $OldDirName"
        echo
        echo;echo "OldDirName : $OldDirName"
        echo
    # if no artist on file tag present then keep orginal DirName
        if [ ! -z "$changeDirName" ] ; then

            newDirName="$changeDirName"
        else
            #if no Artist MetaData 
            newDirName="$OldDirName"
        fi

########### CHANGE NAME OF PARENT DIR WHERE IT IS AT FIRST
        echo;echo "Old Dir Name != newDirName " echo "this is MP3Count - "$MP3Count""


        echo;echo "[[ "$OldDirName" != "$newDirName" ]]"


        if [[ "$OldDirName" != "$newDirName" ]] ; then 


            oldDirPathNewName=""$working_dir"/"$newDirName""
            Dir="$newDirName"
            echo;echo "oldDirPathNewName "$oldDirPathNewName""
            echo ""$OldDirName" not = to "$newDirName""

           #change name of dir to artist/band name
            echo "mv "$OldDirName" to "$oldDirPathNewName""

            #change old dir name to new dir name
            #mv -v "$working_dir"/"$OldDirName" "$oldDirPathNewName"

            mv -v "$working_dir"/"$OldDirName" "$oldDirPathNewName"
            echo
        else
            Dir="$OldDirName"
        fi





            from=""$working_dir"/"$Dir""
            to=""$move_to"/"$Dir""          

    #check if the desanation directory is already there if not move it or 
    # copy it into it then remove left overs 

        if [[ ! -d "$to" ]] ; then
        #move_to"/"$Dir" ]] ; then



            echo "inside ck if move to parent / artist to dir is there"
            echo
            echo ""$move_to"/"$Dir" is not there moving "$Dir""
            echo                                    
            #then move the new dir name to a different
            # place for safe keeping
            echo
            echo;echo "just befor move "
            echo
            echo

            echo "$from -> $to"
            mv -vf "$from" "$to"

            echo    
            echo "DirIsaidtoDo Left : $DirIsaidtoDo"
            echo        

        else


            echo ""$move_to"/"$stringNewDir" is there moving within it into"
            echo
            echo "$move_to"/"$stringNewDir"
            echo

            echo
            cp -Rv "${from}"/* "$to"  
            echo
            rm -rv "$from"
            echo
            echo "DirIsaidtoDo Left : $DirIsaidtoDo"
            echo
        fi

    fi                           

            echo "********** NEXT FILE ***********************"     

        done
        let DirCountDn++
        echo "Dir Count Dn "$DirCountDn"" 
        echo "******************************************" 
        let AmountDirs--
        echo "Amount Dirs to go $AmountDirs"
        echo
        let DirIsaidtoDo--

        echo;echo;echo


    done #FOR DIR Names

для создания более одного dir в порядке создания пути, это создает все имена dirNames, устанавливая родительский dir и его subDir тоже

 mkdir -pv path/dirName/DirName/DirName
0
13.01.2019, 13:15
1 ответ

Да, disk sdf сообщает об ошибках в нескольких блоках. Замените его при первой же возможности. Возможно, вы также захотите использовать smartctlдля получения статистики о сбоях диска

.
smartctl -a /dev/sdf

Подробнее см.https://linux.die.net/man/8/smartctlи https://www.thomas-krenn.com/en/wiki/Analyzing_a_Faulty_Hard_Disk_using_Smartctl

.
0
28.01.2020, 04:03

Теги

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