web-dev-qa-db-ja.com

ファイル名を使用してディレクトリを作成し、ファイルをそれぞれのフォルダに移動します

約150のテキストファイルを含むフォルダーがあります。 150ファイルの名前でフォルダを作成したいのですが。その後、テキストファイルをそれぞれのフォルダに移動したいと思います。

Myfolderディレクトリ内のファイルの名前の例:

~/myfolder/
       |______ ajhaslf.txt
       |______ oiueed.txt
       |______ dsflije.txt

新しい構造をどのようにしたいか:

~/myfolder/
       |______ ajhaslf
                   |____ajhaslf.txt
       |______ oiueed
                   |____oiueed.txt
       |______ dsflije
                   |____dsflije.txt

もちろん、mkdirを使用して、ファイル名でディレクトリを作成しても問題ありません。

5
biobudhan

@ gniourf_gniourf は正しい考えを持っています:

set -o errexit -o nounset
cd ~/myfolder
for file in *.txt
do
    dir="${file%.txt}"
    mkdir -- "$dir"
    mv -- "$file" "$dir"
done

これはPOSIXに準拠している必要があります。 再入可能ではありませんsomething.txtsomething.txt.txtという名前の2つのファイルがある場合、機能しません

7
l0b0