
我有一個包含大約 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
。