使用檔案名稱建立目錄並將檔案移至各自的資料夾

使用檔案名稱建立目錄並將檔案移至各自的資料夾

我有一個包含大約 150 個文字檔案的資料夾。我想以 150 個檔案的名稱建立資料夾。之後,我希望將文字檔案移動到其各自的資料夾中。

myfolder 目錄中的檔案名稱範例:

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

我希望我的新結構是:

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

當然,使用檔案名稱建立目錄對我來說不是問題mkdir

答案1

@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.txt和 的文件,則可以工作something.txt.txt

相關內容