0

これについて助けが必要ですディレクトリとしてパラメーターを受け取るスクリプトが欲しいです, それらのディレクトリを参照して、見つかった各ファイルに適切な拡張子を追加するか、.aaaを拡張子として追加するディレクトリである場合, ファイルには拡張子がありません, そして私はコマンドファイルを使用してファイルタイプを判別する必要があります (ファイルには拡張子がありません) ありがとう

#!/bin/sh
for dir in "$@"; do
    for file in "$dir"/*;
    do    
        if [[ -d $file ]]
        then
            ext=dir
        else
            file -i * | egrep 'avi|txt|jpeg|pst'
        fi
        if [file eq avi]
            ext=avi
        else
            if [file eq txt]
                ext=txt
            else
                if [file eq jpeg]
                    ext=jpeg
                fi
    done
done
4

1 に答える 1

0

あなたはおそらくこのようなことを意味します:

for dir in "$@"
do
    for file in "$dir"/*
    do
        ftype=$(file -i "$file")
        unset ext
        case $ftype in
            *directory*) ext=aaa
                         ;;
            *avi*) ext=avi
                   ;;
            *text*) ext=txt
                   ;;
            *jpeg*) ext=jpeg 
                    ;;
            *ps*) ext=ps
                  ;;
            *) echo "File '$ftype' not recognised for file $file" >&2
               continue
               ;;
        esac                                                           
        echo "Renaming '$file' to '$file.$ext'"
        mv "$file" "$file.$ext"
    done
done

の必要はなく、ディレクトリについてもレポートするため、テストの必要egrepがない ことに注意してください。file-d

編集: egrep元の投稿された質問にありました。追加したunset

于 2013-02-21T16:12:59.673 に答える